等待两个Observable并执行一个返回Observable的方法

时间:2016-06-20 20:07:36

标签: rx-java

我有两个Observables<T>名为obsOneobsTwo,其结果我想要合并,然后调用一个返回Observable<R>的方法。我试图做

Observables.zip(obsOne, obsTwo, (r1, r2) -> myMethodReturningObservableR(r1, r2));

但我最终得到的是Observable<Observable<R>>的实例,这不是我需要的。浏览文档后,我发现switchOnNext,现在我正在使用

Observables.switchOnNext(Observables.zip(obs1, obs2, (r1, r2) -> myMethodReturningObservableR(r1, r2));

但是这感觉不对。我想问两个问题:

  1. “概念”和效果条款中switchOnNext(zip(...))的这种用法是否可以接受? (所有三个观察者只发出一个值或一个错误。)
  2. 是否有更好的语法或操作符短路switchOnNext(zip(...))(或在此方案中等效的其他运算符)?

1 个答案:

答案 0 :(得分:4)

只需将observable展平为data = xlsread(filename, -1);

Observable<R>