RxJava:使用后续调用的结果更新调用结果
RxJava : update result of call with results of subsequent calls
我有两个电话:
getItems()
- returns 一个 List<Item>
,还有 Item
有 id
字段
getParam(id)
- 即 returns Param
我需要为 List
中的每个 Item
创建 getItems()
然后 getParam(id)
然后需要用收到的 [=16] 更新每个 Item
=]
我的问题是:
我如何使用 RxJava 实现这个?
api.getItems()
.flatMapIterable(new Func1<List<Item>, Iterable<Item>>() {
@Override
public Iterable<Item> call(List<Item> items) {
return items;
}
})
.flatMap(new Func1<Item, Observable<?>>() {
@Override
public Observable<?> call(Item item) {
return api.getParam(item.id)
}
}),
...
.subscribe(...);
提前致谢。
使用双参数flatMap
;第二个参数是一个 Func2
,它将接收原始项目和第一个参数调用的每个结果。
我有两个电话:
getItems()
- returns 一个List<Item>
,还有Item
有id
字段getParam(id)
- 即 returnsParam
我需要为 List
中的每个 Item
创建 getItems()
然后 getParam(id)
然后需要用收到的 [=16] 更新每个 Item
=]
我的问题是:
我如何使用 RxJava 实现这个?
api.getItems()
.flatMapIterable(new Func1<List<Item>, Iterable<Item>>() {
@Override
public Iterable<Item> call(List<Item> items) {
return items;
}
})
.flatMap(new Func1<Item, Observable<?>>() {
@Override
public Observable<?> call(Item item) {
return api.getParam(item.id)
}
}),
...
.subscribe(...);
提前致谢。
使用双参数flatMap
;第二个参数是一个 Func2
,它将接收原始项目和第一个参数调用的每个结果。