【问题标题】:Combine Observable with second Observable which uses results from from the first one将 Observable 与第二个 Observable 结合使用,后者使用第一个 Observable 的结果
【发布时间】:2016-02-09 13:06:21
【问题描述】:

我有两种方法返回 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}

如何做到这一点?

【问题讨论】:

    标签: java rxjs rx-java rx-android


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢!我知道 flatMap 但不知何故没有注意到这种过载。
    • 我认为现在已弃用这种用法?
    • @ahong 这个答案是在 RxJava 2 天内给出的。老实说,我不知道它在 RxJava 3 中是否有任何不同。但至少在 RxJava 2 中它看起来并没有被弃用。
    • 嗯..对不起,我很困惑。认为这是一个 RxJs 解决方案——我认为它在 RxJs 中已被弃用,但不确定语言之间的界面是否相同。
    猜你喜欢
    • 1970-01-01
    • 2019-01-23
    • 1970-01-01
    • 1970-01-01
    • 2017-11-01
    • 2019-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多