2017-02-22 76 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

相关问题