2017-02-22 78 views
2

我有一個網絡調用來驗證和接收令牌,第二個使用此令牌請求數據。不同類型的Concat Observable

我想將它們合併爲Single<Data>。爲了做到這一點,我正在尋找concat,但這似乎只適用於同一類型的Observable。使用zip我可以僅返回第二個Observable的響應,但根據我的理解,它在並行中工作,而我需要等待第一個Observable並處理其響應,然後才能開始第二個響應。

我應該爲這種情況使用什麼操作符?

回答

4

由於請求令牌和請求數據是依賴步驟然後使用flatMap:

Observable<String> getToken(String user, String password) { 
    ... 
} 

Single<Data> getData(String token) { 
    ... 
} 

用法:

Single<Data> data = getToken(user, pass).flatMap(token -> getData(token)) 
+0

完美,謝謝。 – ferbeb