gpt4 book ai didi

RxJs:Subjects 和 Observable-Multicasting 有什么区别

转载 作者:行者123 更新时间:2023-12-04 01:46:56 25 4
gpt4 key购买 nike

我已经学习 RxJs 几个星期了,我似乎无法理解 Subjects 和 Multicasting an observable 之间到底有什么区别。

我找到了许多区分可观察对象和主题的来源,但我找不到任何区分主题和多播可观察对象的来源

据我了解...

Multicasting: allow side-effects to be shared among multiple subscribers.

Subjects: is an Observable which shares a single execution path amongobservers.

我的问题是:

  • 如果两者做同样的事情有什么区别?
  • 什么时候应该使用主题?
  • 什么时候应该使用多播?

最佳答案

“多播”基本上意味着在多个观察者之间共享对源 Observable 的订阅。在 RxJS 中,这总是通过内部使用 Subject 实例的 multicast() 运算符完成。

Subjects 是同时充当 Observable 和观察者的对象。因此,通常您会使用 Subjects 随时发出自定义事件:

const s = new Subject();
s.next();
s.complete();

...但是您可以使用它来订阅另一个 Observable,然后多次订阅此 Subject,这与多播一样:

const s = new Subject();
const source = ... // Observable
source.subscribe(s);

s.subscribe(...);
s.subscribe(...);
s.subscribe(...);

因此只有一个对 source 的订阅和 3 个对 s 的订阅(观察者),因此您将 source 的发射多播到 3 个观察者.

关于RxJs:Subjects 和 Observable-Multicasting 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54919874/

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