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

时间:2017-12-11 17:24:31

标签: rx-java observable rx-android

3 可观察量, 2 可以按顺序运行,例如

Observable<BaseObject> baseObj = getBaseObs();

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

相关问题