RxJs:ConcatMap VS ConcatMapTo,MergeMap VS MergeMapTo
RxJs: ConcatMap VS ConcatMapTo, MergeMap VS MergeMapTo
该文档不足以帮助我理解它们之间的区别。
It's like concatMap, but maps each value always to the same inner
Observable.
http://reactivex.io/rxjs/file/es6/operators/concatMapTo.js.html
我尝试查看 learnrxjs.io 在 stackblitz 上的示例,但即使有了这些,我也无法立即确定将它们分开的区别特征。
仅供参考,我看到了另一个类似的问题
What is the difference between mergeMap and mergeMapTo?
但那里的答案并不令人满意,因为在 learnrxjs.io 示例中,它们清楚地映射到可观察值,而不是硬编码值。
https://www.learnrxjs.io/operators/transformation/concatmapto.html
如果有人可以提供一些例子(也许还有一个简短的解释)来帮助区分 *** 和 *** 对于高阶可观察运算符,我将不胜感激,谢谢。
简单地说,变体 with *To
将始终使用创建整个链时需要创建的相同 Observable,而不管链发出的值如何.他们将 Observable 作为参数。
变体 没有 *To
可以创建并且 return 只有当它们的源 Observable 发出时才可以创建任何 Observable。他们将 回调 作为参数。
例如,当我使用 mergeMapTo
时,我总是订阅同一个 Observable:
source.pipe(
mergeMapTo(of(1)),
)
来自 source
的每一次排放都将始终映射到 of(1)
,我无法更改它。
另一方面,仅 mergeMap
我可以 return 任何我想要的 Observable,具体取决于接收到的值:
source.pipe(
mergeMap(v => of(v * 2)),
)
也许更简单的思考方式是记住 *To
变体将值映射到常量(即使它不是 "real JavaScript constant")。
该文档不足以帮助我理解它们之间的区别。
It's like concatMap, but maps each value always to the same inner Observable. http://reactivex.io/rxjs/file/es6/operators/concatMapTo.js.html
我尝试查看 learnrxjs.io 在 stackblitz 上的示例,但即使有了这些,我也无法立即确定将它们分开的区别特征。
仅供参考,我看到了另一个类似的问题 What is the difference between mergeMap and mergeMapTo? 但那里的答案并不令人满意,因为在 learnrxjs.io 示例中,它们清楚地映射到可观察值,而不是硬编码值。 https://www.learnrxjs.io/operators/transformation/concatmapto.html
如果有人可以提供一些例子(也许还有一个简短的解释)来帮助区分 *** 和 *** 对于高阶可观察运算符,我将不胜感激,谢谢。
简单地说,变体 with *To
将始终使用创建整个链时需要创建的相同 Observable,而不管链发出的值如何.他们将 Observable 作为参数。
变体 没有 *To
可以创建并且 return 只有当它们的源 Observable 发出时才可以创建任何 Observable。他们将 回调 作为参数。
例如,当我使用 mergeMapTo
时,我总是订阅同一个 Observable:
source.pipe(
mergeMapTo(of(1)),
)
来自 source
的每一次排放都将始终映射到 of(1)
,我无法更改它。
另一方面,仅 mergeMap
我可以 return 任何我想要的 Observable,具体取决于接收到的值:
source.pipe(
mergeMap(v => of(v * 2)),
)
也许更简单的思考方式是记住 *To
变体将值映射到常量(即使它不是 "real JavaScript constant")。