java - RxJava : update result of call with results of subsequent calls

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

我有 2 个电话:

  1. getItems() - 返回 List<Item> ,还有Itemid字段
  2. getParam(id) - 返回 Param

我需要制作getItems()然后getParam(id)对于每个 ItemList然后需要每 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(...);

提前致谢。

最佳答案

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

关于java - RxJava : update result of call with results of subsequent calls,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34342511/

相关文章:

Android PhoneStateListener : onCellLocationChanged in standby mode

javascript - 如何通过 Rxjs 中的简单缓冲来缓冲可观察值?

java - 有人能理解 java.lang.IllegalStateException : Only one Observer allowed in this short example?

java - 如何禁用所有网络共享数据的互联网

java - 使用 CompleteableFuture 和 Spring Transaction 耗尽池

java - 有使用 H2 数据库的实际经验吗?

java - 如何使用 ASM 控制常量池条目的顺序?

javascript - 如何获取我的App id(或POC id)?

javascript - RxJS 合并 GET 请求的 url 数组

java - 从 jar 文件中读取声音文件