例如,如果我有3个功能
Completable requestLogin()
Single hasProjects()
Completable createDefaultProject()
我如何在单个请求中组合它们
requestLogin()>
onComplete >
hasProjects()>
onSuccess >
有可能的?如果出现错误会发生什么?
这是你使用Rx的原因之一。一种可能性是:
>
我们请求登录,一旦完成,我们检查是否有项目。如果不是,则requestLogin()
.andThen(
hasProjects()
.filter(value -> !value)
.flatMapCompletable(value -> createDefaultProject()))
.subscribe(() ->{}, throwable -> {
// All errors will end up here
});
不会终止创建默认项目的流。如果有项目,则不会创建任何默认项目。
如果一路上有任何错误,将调用filter
方法,您可以在那里处理错误。