将Observable与第二个Observable结合使用,该Observable使用来自第一个的结果

时间:2016-02-09 13:06:21

标签: java rx-java rx-android

我有两个返回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}

如何做到这一点?

1 个答案:

答案 0 :(得分:11)

flatMap的重载变体,其中第二个参数是可以访问初始项的组合函数和第二个可观察项生成的组合函数:

firstObservable.flatMap(string -> secondObservable(string), (s, s2) -> s + s2);