为什么Observable可被两个观察者订阅两次,不是Subject才能被多播吗?
来自官方文档的额例子
来自官方关于Subject多播的介绍:A "multicasted Observable" passes notifications through a Subject which may have many subscribers, whereas a plain "unicast Observable" only sends notifications to a single Observer.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
一个 Observable 是可以被多个 observer 订阅的,只是每个订阅都是一个新的独立的 Observable execution :
可以看下面例子:http://jsbin.com/fufajukutu/1...
如果是同一个 shared Observable execution 的话,B的第一个 emit 的值应该是
2
而不是0
,并且只有且仅有一个值2
。下面是用 Subject 写的例子:http://jsbin.com/fufajukutu/2...
由于 Subject 是多播,也就是每个 observer 都 share 同一个 Observable execution 。
所以B的第一个 emit 的值并且只有一个值是
2
!See Also
André Staltz 出品的 关于 Rx Subject 的教程