fer*_*beb 4 java reactive-programming rx-java reactivex
我有一个网络调用来验证和接收一个令牌,另一个使用这个令牌请求数据。
我想将它们组合成一个Single<Data>. 为此,我正在查看concat,但这似乎仅适用于Observable相同类型。使用zipI 可以只返回第二个的响应Observable,但据我所知,它可以并行工作,而我需要等待第一个Observable并在我开始第二个之前处理它的响应。
在这种情况下,我应该使用什么运算符?
由于请求令牌和请求数据是相关步骤,因此使用 flatMap:
Observable<String> getToken(String user, String password) {
...
}
Single<Data> getData(String token) {
...
}
Run Code Online (Sandbox Code Playgroud)
用法:
Single<Data> data = getToken(user, pass).flatMap(token -> getData(token))
Run Code Online (Sandbox Code Playgroud)