2017-12-18 12 views
0

RxJavaのコンセプトは新しいです。 - 私は最初の呼び出しをチェーンする必要がありどのように要求Rxjavaは複数のリクエストをチェーンしています

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

後に要求

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

//この呼び出しは私に 次のステップは、すべてのRoomIdsのために呼び出すことですRoomIdsを取得します:私はチェーンいくつかの呼び出しがしたい 次の呼び出しで?

flatMapとループを使用してすべてのリクエスタを呼び出す必要があると思いますが、最後にすべての応答をどのように接続するのですか?

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

答えて

2
再びそれを超える 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(/* */); 
+0

感謝を。 – Unii

関連する問題