为何此场景下RXJS Subject的next()方法无法发送信息?
关于RxJS Subject中next()方法的疑问解答
你的代码里subject.next(4)实际上是可以正常发送值的,运行这段代码应该会输出:
observerA: 1 observerB: 1 observerA: 2 observerB: 2 observerA: 3 observerB: 3 observerA: 4 observerB: 4
核心逻辑说明
- Subject本身既是
Observable也是Observer:当你执行observable.subscribe(subject)时,from([1,2,3])发出的每一个值都会通过Subject的next方法转发给它的所有订阅者(即observerA和observerB)。 subject.next(4)是独立于前面fromObservable的操作,只要Subject还有活跃的订阅者,这个调用就会把值推送给所有订阅者,不会因为之前订阅过其他Observable而失效。
如果你没看到4的输出,大概率是运行环境的问题(比如控制台输出被截断、代码执行被中断),或者存在未贴出的其他代码影响了Subject的订阅状态。
内容的提问来源于stack exchange,提问作者Bilal
相关产品推荐
相关产品推荐

