【问题标题】:Are all cold observables unicast and all hot observables multicast?所有冷的 observables 都是单播的,所有的 hot observables 都是多播的吗?
【发布时间】:2020-02-20 19:29:37
【问题描述】:

我正在阅读有关 multicasting 的文档说:

在 RxJS 中,observables 默认是冷的,或单播的。这些运算符可以制作可观察的热或多播,从而允许在多个订阅者之间共享副作用。

我想知道是否所有冷的 observable 都是单播的,所有的热的都是多播的,或者是否有任何例外情况。

【问题讨论】:

  • 在这里查看一些解释:dev.to/michael_hladky/…
  • 我认为他们的意思是所有构建到 RxJS 中的冷 Observable 都是单播的,这意味着它们不是共享的(就像 N 个订阅将创建 N 个不同的链)。这并不意味着热的 Observable 是多播的。你可以使用多播操作符将冷的 Observable 变成热的。
  • 关于这个话题你能得到的最好的解释可能来自 Ben Lesh,他是 RxJS 的创造者之一,可以在 here 找到。
  • @lagoman 将其添加到我的答案中!

标签: rxjs observable


【解决方案1】:

@lagoman 提供的link 中(我已经阅读了很多次但仍然错过了这一点)我发现了一些关于热组播关系的有趣解释:

² Hot observables 通常是多播的,但它们可能会监听一次只支持一个监听器的生产者当时称其为“多播”的理由有点模糊

【讨论】:

    猜你喜欢
    • 2015-11-18
    • 1970-01-01
    • 2017-12-04
    • 1970-01-01
    • 1970-01-01
    • 2017-01-25
    • 2023-03-30
    • 2017-05-18
    • 2020-01-23
    相关资源
    最近更新 更多