java - Rxjava链式多于一个请求

标签 java android rx-java2

我是 RxJava 的新手。 我想链接一些电话:

Observable<RoomList> listRoomsCall = mRoomServiceApi.listRooms();

//这个电话会给我RoomIds 下一步是调用所有 RoomIds - 请求后请求

mMeetingServiceApi.listMeetings(roomID, startsAtString, endsAtString, free))

我应该如何将第一次调用与下一次调用联系起来?

我认为我应该使用 flatMap 并循环调用所有请求,但最后如何连接所有响应?

  listRoomsCall.flatMap(v -> {
            for (ExchangeRoom exchangeRoom : v.getExchangeRoomList()) {
               mMeetingServiceApi.listMeetings(roomID, startsAtString, endsAtString, free);
            }
        })

最佳答案

将内部列表变成一个 Observable 并在其上再次使用 flatMap:

listRoomsCall
.flatMapIterable(v -> v.getExchangeRoomList())
.flatMap(exchangeRoom -> {
    mMeetingServiceApi.listMeetings(roomID, startsAtString, endsAtString, free);
})
.subscribe(/* */);

listRoomsCall
.flatMap(v -> 
     Observable.fromIterable(v.getExchangeRoomList())
     .flatMap(exchangeRoom -> {
         mMeetingServiceApi.listMeetings(roomID, startsAtString, endsAtString, free);
     })
)
.subscribe(/* */);

关于java - Rxjava链式多于一个请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47868504/

相关文章:

java - 如何围绕面向对象设计进行思考

java - boolean 值在 RecyclerView 中单击按钮时不起作用

java - 拖动框架时如何在文本字段下方设置 JWindow 的位置?

java - 本地图中的键是一个对象时,如何通过该对象的属性进行搜索?

java - 如何让JFrame背景图片透明?

android - FragmentPagerAdapter 实例化所有 fragment

android - 如何将 TableView 列与相邻列中的最大值文本值对齐

java - 生成 Observable 发出的值

java - 如果调用 doOnSubscribe() 返回的对象,RxJava2 dispose() 不起作用

java - 在 RxJava2 中使用背压将 Observable 转换为 Flowable