【问题标题】:Combining multiple observables in RxJava在 RxJava 中组合多个可观察对象
【发布时间】:2016-12-11 01:20:59
【问题描述】:

假设我有“n”个数据源(例如 REST API):

Observable<List<DataItem>> source1 = api.source1();
Observable<List<DataItem>> source2 = api.source2();
Observable<List<DataItem>> source3 = api.source3();
...
Observable<List<DataItem>> sourcen = api.sourcen();

其中“n”相对较小(~10)

我想要做的是获取所有这些来源,并行运行它们并接收包含来自所有可观察对象的所有 DataItems 的List&lt;DataItem&gt; list,但前提是每个网络调用都完成。

提前致谢

【问题讨论】:

    标签: android retrofit rx-java retrofit2


    【解决方案1】:

    可以做这样的事情:

    List<Observable<?>> obsList = Arrays.asList(source1, source2, source3, ...);
    
    Observable.zip(obsList, ...
    

    【讨论】:

    • 我看到的建议是使用类似:Observable&lt;List&lt;DataItem&gt;&gt; source1 = api.source1().subscribeOn(Schedulers.newThread()); 等(来自stackoverflow.com/questions/38234152/…
    • 像魅力一样工作。谢谢!
    猜你喜欢
    • 2016-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多