我有一个网络调用来验证和接收一个 token ,另一个网络调用使用这个 token 请求数据。
我想将它们组合成一个 Single<Data>
.为此,我查看了 concat
, 但这似乎只适用于 Observable
同类型的。使用 zip
我可以只返回第二个 Observable
的响应,但据我所知,它是并行工作的,而我需要等待第一个 Observable
并在我开始第二个之前处理它的响应。
在这种情况下我应该使用什么运算符?
最佳答案
由于请求 token 和请求数据是依赖步骤,因此使用 flatMap:
Observable<String> getToken(String user, String password) {
...
}
Single<Data> getData(String token) {
...
}
用法:
Single<Data> data = getToken(user, pass).flatMap(token -> getData(token))
关于java - Concat 不同类型的 Observable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42386357/