繁体   English   中英

使用翻新和RxJava(Android)合并来自多个API调用的数据

[英]Combine data from multiple API calls using retrofit and RxJava (Android)

我想做的是通过几个不同的URL访问数据,合并这些数据,然后在我的应用程序中使用它。 我可以轻松获取所需的所有数据,但是我不知道如何将数据合并到一个列表中,并知道何时完成所有API调用(所有数据都在列表)。

这是我进行API调用的循环:

for(String diningCourt: diningCourts){
        menuApi.getMenu(diningCourt, date)
                .subscribeOn(Schedulers.newThread())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(responseData -> {

                     //I want to add responseData to a list with 
                     //the results from the rest of the calls 

                });
    }

收集数据的正确方法是什么? 我尝试使用静态类变量来存储结果,但最终只能获得来自API调用之一的数据。 任何建议将不胜感激。

我们使用“ combineLatest”,请参见http://reactivex.io/documentation/operators/combinelatest.html。使用此运算符,两个调用都将被执行,并且当两个调用完成时,您将获得结果。

Observable.combineLatest(observable1, observable2, (result1, result2) -> { //use both results })

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM