将 Observable 与第二个 Observable 结合使用第一个 Observable 的结果

Combine Observable with second Observable which uses results from from the first one

我有两种方法 returning Observable:

Observable<String> firstObservable();
Observable<String> secondObservable(String value);

对于第一个 Observable 的每个结果,我都会得到第二个 Observable 的新实例。对于来自第二个可观察对象的每个结果,我将 return 对象与组合结果。

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}

如何做到这一点?

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

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