Rx java concatMap与flatMap

Rx java concatMap与flatMap,rx-java,reactive-programming,Rx Java,Reactive Programming,我被concatMap中的预取参数弄糊涂了,它听起来基本上像MAX_并发 预回迁:从当前可观测数据预回迁的元素数 Q1:这是否意味着从Observable中预取元素进行映射,然后按顺序一次订阅一个元素 e、 g,concatMapSingle的文档非常清楚: 将上游项映射到单个源并订阅一个 在另一个成功后,发出其成功值或终止 如果该可观察到或当前内部 单一来源失败 问题2:concatMap的文档是否可以改写为: 将上游项映射到ObservableSource并订阅它们 一个接一个地完成 con

我被concatMap中的预取参数弄糊涂了,它听起来基本上像MAX_并发

预回迁:从当前可观测数据预回迁的元素数

Q1:这是否意味着从Observable中预取元素进行映射,然后按顺序一次订阅一个元素

e、 g,concatMapSingle的文档非常清楚:

将上游项映射到单个源并订阅一个 在另一个成功后,发出其成功值或终止 如果该可观察到或当前内部 单一来源失败

问题2:concatMap的文档是否可以改写为:

将上游项映射到ObservableSource并订阅它们 一个接一个地完成

concatMap文档的原始版本:

返回一个新的可观察对象,该可观察对象发出应用 为源发出的每个项提供的函数 ObservableSource,其中该函数返回ObservableSource,以及 然后发出通过连接这些结果而产生的项 可观察资源

i、 例如,以下几行在最大并发性方面基本相同


TL;博士:这是真的。找到了答案

Q1:这是否意味着从Observable中预取元素进行映射,然后按顺序一次订阅一个元素

在concatMap的当前实现中,上游项是预取的,但在前一个内部源完成或它是第一个项之前不会映射。内部资源一个接一个地运行

问题2:concatMap的文档是否可以改写为:

我还要在第一句中提到错误行为,就像concatMapSingle一样。欢迎光临

一些较旧的javadoc的文字有点复杂,而较新的javadoc则更简洁。那些旧的也让我恼火,但除非他们需要一些扩展 -由于越来越多的问题/误解,我倾向于不去理会他们

以下几行在最大并发性方面基本相同

有了可观测,就没有背压,因此concatMap和flatMap都必须排队等待上游项目,直到它们准备好映射和订阅。concatMap的预取提示应该更像capacityHint,因为它用于调整包含额外值的内部队列的大小。

我想知道Flowable的concatMap的预取参数默认为2。
int MAX_CONCURRENCY = 1;
Observable.just(1, 2, 3).flatMap(num -> Observable.just(num), false, MAX_CONCURRENCY);
Observable.just(1, 2, 3).concatMap(num -> Observable.just(num));