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

时间:2015-12-17 19:17:11

标签: java android reactive-programming rx-java rx-android

我有2个电话:

  1. getItems() - 返回List<Item>Item还有id字段
  2. getParam(id) - 返回Param
  3. 我需要为getItems()中的每个getParam(id)制作Item然后List,然后需要使用收到的Item更新每个Param

    我的问题是:

    如何使用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(...);
    

    提前致谢。

1 个答案:

答案 0 :(得分:1)

使用双参数flatMap;第二个参数是Func2,它将同时接收原始项目和第一个参数调用的每个结果。