【发布时间】:2017-07-14 00:53:52
【问题描述】:
我有一个对象列表:ArrayList<T> arrayList;,并且在列表的每个对象上都有一个 ID:T.getId(),我需要它来发出请求。作为响应,将获取另一个对象列表:ArrayList<E> anotherList
我想根据 id 进行多次调用:T.getId() 并且在每个响应上,我想将该对象:T 与响应:ArrayList<E> anotherList 合并到哈希图上:Hashmap<T, ArrayList<E> anotherList> 并返回之后的值所有请求都已完成。有没有办法使用rxJava 实现这一点?:
//For every `T.getId()`, fetch `ArrayList<E> anotherList`
for(int i=0; i<arrayList.size(); i++){
T object = arrayList.get(i);
fetchData(T.getId());
}
在每个onNext() 上合并(hashmap.put())T 并在Hashmap<T, ArrayList<E> anotherList> 上响应ArrayList<E> anotherList。在所有请求完成后返回包含这些对的最终 hashmap:
retrofit.fetchData(T.getId())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.flatMap(...)
.merge(...)
.subscribeWith(...)
有什么方法可以实现吗?
【问题讨论】:
标签: java android retrofit2 rx-android rx-java2