【发布时间】:2019-07-13 15:48:46
【问题描述】:
我从某个时候开始使用 RxJS,我似乎无法理解为什么我们将 RxJS Subject 称为 Multicast 和 Observable 称为 Unicast。
我知道Subject 能够使用next() 发出数据,并且像普通的 Observable 一样,我们也可以订阅它们。
我是从 RxJS 官网找到的
A Subject is like an Observable, but can multicast to many Observers.
这是否意味着一个普通的 Observable 不能有多个观察者?
【问题讨论】:
-
是的。一个主题向许多订阅者发出相同的事件。一个冷的 observable 为每个订阅者生成一个新的事件流。 rxjs-dev.firebaseapp.com/guide/subject
-
主题也可以作为
Observable使用asObservable方法返回,然后您将获得反映主题的多播 observable,但没有next公开以供外部使用。所以是的,一个可观察的可以多播。主体和可观察对象都可以有多个观察者,但多播可以向其观察者发出多次,而单播将向其观察者发出一次。
标签: angular rxjs observable