我想用不同的参数调用两次函数,并且该函数根据参数返回一组值。我想整理两个结果并对其进行处理。
我抬起头来,应该使用平面地图来做到这一点,但是我不确定该如何做。请您指导我。
getCompaniesData(pageNumber,perPage)//返回100个公司
getCompaniesData(pageNumber,perPage)//返回100家公司
整理两个答复-总计200家公司
做点什么。
当前这是我返回的带参数(1,100)的内容,一旦获得数据,我想使用带参数(2,100)调用相同的函数,这将给我另一组数据并将其组合并对其进行处理
mHighLightsPresenter. getCompaniesData(1, 1000).doOnNext(fetchCompaniesResponse -> {
if(fetchCompaniesResponse != null)
{
List<com.dopay.onboarding.data.bean.Company> companies = fetchCompaniesResponse.getCompanies();
if (companies != null && !companies.isEmpty()) {
showCompaniesDialog(companies);
}
Toast.makeText(getContext(), "companies response is not null", Toast.LENGTH_LONG).show();
}
}).subscribe();
您的建议非常有帮助
谢谢 R
答案 0 :(得分:0)
首先检查flatMap
操作员的文档,上面写着:
将一个Observable发出的项目转换为Observable,然后将这些项目的排放展平为一个Observable。
如何使用不同的参数调用同一函数?
您可以提取方法getCompaniesData
并以这种方式将两个整数(或适当的类)传递给它:
Observable<T> getCompaniesData(Param param);
如何合并不同的结果?
您可以将运算符flatMap
应用于已定义方法发出的多个Observable
。
Observable<T> foo(Param... params) {
return Observable.fromArray(params)
.flatMap(this::getCompaniesData)
...
}