Rxjava链不止一个请求

问题描述 投票:1回答:1

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

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

//此调用将获取RoomIds下一步是调用所有RoomIds - 请求后请求

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

我应该如何用下一个电话连接第一个电话?

我认为我应该使用flatMap和loop来调用所有请求但是如何在最后连接所有响应?

  listRoomsCall.flatMap(v -> {
            for (ExchangeRoom exchangeRoom : v.getExchangeRoomList()) {
               mMeetingServiceApi.listMeetings(roomID, startsAtString, endsAtString, free);
            }
        })
java android rx-java2
1个回答
3
投票

将内部列表再次转换为ObservableflatMap

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(/* */);
© www.soinside.com 2019 - 2024. All rights reserved.