【问题标题】:Rxjava2 combine multiple operationsRxjava2 组合多个操作
【发布时间】:2019-03-23 11:15:49
【问题描述】:

例如,如果我有 3 个功能

Completable requestLogin()

Single hasProjects()

Completable createDefaultProject()

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

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

有可能吗?如果出现错误怎么办?

【问题讨论】:

    标签: java android rx-java2 rx-android


    【解决方案1】:

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

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

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

    如果在此过程中出现任何错误,将调用onError 方法,您可以在那里处理错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-21
      • 2019-07-12
      • 2018-08-23
      • 2018-10-09
      • 1970-01-01
      • 1970-01-01
      • 2020-06-11
      相关资源
      最近更新 更多