【问题标题】:How can I combine two observables based on the result of the first observable?如何根据第一个 observable 的结果组合两个 observable?
【发布时间】:2017-12-11 17:24:31
【问题描述】:

3个可观察对象,2个可以顺序运行,例如

Observable<BaseObject> baseObj = getBaseObs();

Observeable<Object1> obs1 = getObs1();
Observeable<Object2> obs2 = getObs2();

baseObj 应该总是先执行,如果结果baseObj.isFirst() 等于true,则应立即执行可观察的obs1,否则应执行obs2

如何根据第一个 observable 的结果组合两个 observable?

【问题讨论】:

    标签: rx-java observable rx-android


    【解决方案1】:

    您可以使用switchMap() 运算符安排观察后续可观察对象:

    baseObj
      .switchMap( isFirst -> isFirst ? obs1 : obs2 )
      .subscribe( ... );
    

    观察者链的结果是obs1obs2的结果,取决于baseObj

    【讨论】:

      猜你喜欢
      • 2021-02-05
      • 2017-11-01
      • 1970-01-01
      • 2019-12-07
      • 1970-01-01
      • 1970-01-01
      • 2018-12-21
      • 1970-01-01
      • 2016-08-06
      相关资源
      最近更新 更多