RxJava:使用后续调用的结果更新调用结果

RxJava : update result of call with results of subsequent calls

我有两个电话:

  1. getItems() - returns 一个 List<Item>,还有 Itemid 字段
  2. 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 ,它将接收原始项目和第一个参数调用的每个结果。