我有两个返回Observable的方法:
Observable<String> firstObservable();
Observable<String> secondObservable(String value);
对于第一个Observable的每个结果,我得到第二个Observable的新实例。对于来自第二个observable的每个结果,我将返回具有组合结果的对象。
firstObservable -> x----x----x----x----x
\ \ \ \ \
secondObservable -> y(x)-y(x)-y(x)-y(x)-y(x)
\ \ \ \ \
result -> {x,y}-{x,y}-{x,y}-{x,y}-{x,y}
如何做到这一点?
答案 0 :(得分:11)
有flatMap
的重载变体,其中第二个参数是可以访问初始项的组合函数和第二个可观察项生成的组合函数:
firstObservable.flatMap(string -> secondObservable(string), (s, s2) -> s + s2);