我是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);
}
})
将内部列表再次转换为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(/* */);