我是RxJava的新手,我正在使用RxJava2进行一些RESTful编程。我很少要进行 API 调用,这些调用彼此独立。我从我的用例中观察到的是,由于 API 调用是相互异步的,并且都返回可观察量
<代码>可观察
对于收到回复的邮件,代码为:
返回someApiCall.flatMap(数据-
我的问题是:使用FlatMap是否会造成阻塞?我上面描述的两个流程有何不同?Subscribe总是异步的吗?
Rx 中的订阅者默认同步。使其异步运行管道的唯一方法是使用 subscribeOn 或 observerOn 运算符。
https://github . com/politrons/reactive/blob/master/src/test/Java/rx/observables/scheduler/observable asynchronous . Java
在您的情况下使用平面地图也是正确的,您必须使用平面地图来组合函数,使用以前的API响应信息调用新API。
如果其中一些API调用没有响应,您始终可以在平面地图运算符中使用超时来进行补偿。
http://reactivex.io/documentation/operators/timeout.html