Rxjava 链接多个请求 [英] Rxjava chain more than one request
本文介绍了Rxjava 链接多个请求的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是 RxJava 概念的新手.我想链接一些调用:
I am new in concept of RxJava. I would like to chain some calls:
Observable<RoomList> listRoomsCall = mRoomServiceApi.listRooms();
//这个电话会得到我的RoomIds下一步是调用所有 RoomIds - 请求后请求
//This call will get me RoomIds Next step is to call for all RoomIds - request after request
mMeetingServiceApi.listMeetings(roomID, startsAtString, endsAtString, free))
我应该如何将第一个调用与下一个调用链接起来?
How should I chain first call with next calls?
我认为我应该使用 flatMap
和循环来调用所有的请求,但是最后如何连接所有的响应?
I thinkt that I should use flatMap
and loop to call all requets but how to connect all responses on the end?
listRoomsCall.flatMap(v -> {
for (ExchangeRoom exchangeRoom : v.getExchangeRoomList()) {
mMeetingServiceApi.listMeetings(roomID, startsAtString, endsAtString, free);
}
})
推荐答案
将内部列表转成 Observable
和 flatMap
再次:
Turn the inner list into an Observable
and flatMap
over it again:
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(/* */);
这篇关于Rxjava 链接多个请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文