Rxjava2 合并多个操作

Rxjava2 combine multiple operations

例如,如果我有 3 个函数

Completable requestLogin()

Single hasProjects()

Completable createDefaultProject()

我如何在单个请求中组合它们

requestLogin() > onComplete > hasProjects() > onSuccess > if(!hasProjets) > createDefaultProject()

有可能吗?如果出现错误会怎样?

这就是您使用 Rx 的原因之一。一种可能是:

requestLogin()
   .andThen(
         hasProjects()
            .filter(value -> !value)
            .flatMapCompletable(value -> createDefaultProject()))
   .subscribe(() ->{}, throwable -> {
         // All errors will end up here
     });

我们请求登录,登录完成后我们检查是否有项目。如果不是,filter 将不会终止创建默认项目的流。如果有项目,则不会创建默认项目。

如果一路上有任何错误,onError方法将被调用,你可以在那里处理错误。