gpt4 book ai didi

RxJs:ConcatMap VS ConcatMapTo,MergeMap VS MergeMapTo

转载 作者:行者123 更新时间:2023-12-01 10:20:06 30 4
gpt4 key购买 nike

该文档不足以让我了解它们之间的区别。

It's like concatMap, but maps each value always to the same inner Observable. http://reactivex.io/rxjs/file/es6/operators/concatMapTo.js.html



我尝试在 stackblitz 上查看 learnrxjs.io 的示例,但即使有这些示例,我也无法立即确定区别这些的区别特征是什么。

仅供引用,我看到了另一个类似的问题
What is the difference between mergeMap and mergeMapTo?
但是那里的答案并不令人满意,因为在 learnrxjs.io 示例中,它们清楚地映射到可观察值,而不是硬编码值。
https://www.learnrxjs.io/operators/transformation/concatmapto.html

如果有人可以提供一些例子(也许是一个简短的解释)来帮助区分 *** 和 *** 对于高阶可观察操作符,我会很感激,谢谢。

最佳答案

简单的说,变种 *To无论链发出的值如何,都将始终使用在创建整个链时需要创建的相同 Observable。他们拿了 可观察 作为参数。

变体 没有 *To只有当它们的源 Observable 发出时才能创建和返回任何 Observable。他们拿了 回调作为参数。

例如,当我使用 mergeMapTo 时我总是订阅同一个 Observable:

source.pipe(
mergeMapTo(of(1)),
)

每次发射来自 source将始终映射到 of(1)我没有办法改变这一点。

另一方面只有 mergeMap我可以根据收到的值返回任何我想要的 Observable:
source.pipe(
mergeMap(v => of(v * 2)),
)

也许更简单的思考方式是记住 *To变体将值映射到常量(即使它不是“真正的 JavaScript 常量”)。

关于RxJs:ConcatMap VS ConcatMapTo,MergeMap VS MergeMapTo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53240090/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com