提问者:小点点

RxJava中的平面图和订阅


我是RxJava的新手,我正在使用RxJava2进行一些RESTful编程。我很少要进行 API 调用,这些调用彼此独立。我从我的用例中观察到的是,由于 API 调用是相互异步的,并且都返回可观察量

<代码>可观察

对于收到回复的邮件,代码为:

返回someApiCall.flatMap(数据-

我的问题是:使用FlatMap是否会造成阻塞?我上面描述的两个流程有何不同?Subscribe总是异步的吗?


共1个答案

匿名用户

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