当前位置:  开发笔记 > 前端 > 正文

Rx Android并行地将多个调用组合到同一服务

如何解决《RxAndroid并行地将多个调用组合到同一服务》经验,为你挑选了1个好方法。

我必须改进一个旧服务,即对同一服务进行多次连续调用,并将所有结果合并到一个列表中.

想象一下,我们有一个IDS = [1,2,3,... 6]的列表所以我必须使用每个ID调用相同的API(使用改进和Observables).

为此,我想使用Rx Android,但我对如何合并结果有疑问.

        Integer[] ids = {1, 2, 3};

        Observable.from(ids)
                .map(id -> mApi.getData(id))

我们可以进行并行调用并按照相同的顺序合并结果吗?

为了改善时间响应,我们的想法是在并行中执行此操作,但我不知道如何确保结果将按照我们执行服务器调用的相同顺序进行组合.

我想使用concat(http://reactivex.io/documentation/operators/concat.html),但它等待以前的observable等待.



1> akarnokd..:

请参阅concatMapEager及其变体.

Observable.fromArray(1, 2, 3)
.concatMapEager(id -> 
    Observable.fromCallable(() -> mApi.getData(id))
    .subscribeOn(Schedulers.io())
)
.subscribe(...);

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有