java - Concat 不同类型的 Observable

标签 java rx-java reactive-programming reactivex

我有一个网络调用来验证和接收一个 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/

相关文章:

java - 2019年客户端-服务器之间的高效数据库同步

java - 如何使用 Java 中的 Scanner 类从控制台读取输入?

java - 模拟 RxJava 异步 http 调用

kotlin - 保持可观察到的错误并返回所有值

parallel-processing - react 性和弹性之间有什么区别?

reactive-programming - 如何将原子计数器与 Spring Data Couchbase Reactive 结合使用

java - 如何使用 java 将 getopts 参数传递给 shell 脚本

java - 使用 Junit 运行所有测试后如何获取多个测试类的测试结果

java - RxJava 的 Observable.create 与 Observable.just(1).flatMap

django - 如何使用 Django 编写响应式 Web 应用程序?