【发布时间】:2016-12-20 13:30:38
【问题描述】:
Observable 只能由一个观察者订阅。 Subject 允许将值多播到许多观察者,但在这个例子中,为什么 foo 被订阅了两次?谢谢!
【问题讨论】:
-
当然一个 Observable 可以被订阅多次。这是 Rx 最基本的原理。在reactivex.io/documentation/observable.html 上至少查看基础知识
-
一个“multicasted Observable”通过一个可能有很多订阅者的 Subject 传递通知,而一个普通的“unicast Observable”只向一个 Observer 发送通知。我在 DOC 中阅读了这些内容
-
这正是您的示例中正在发生的事情。你只有两个订阅同一个 observable 的观察者。他们每个人都会收到他们应该收到的通知 - 检查我的答案。
-
添加
.share()并在分享后订阅,那么它应该只对两个订阅者执行一次
标签: rxjs observable subject