通过一个实际的例子来理解。以下代码创建一个新主题,然后调用next方法向其所有侦听器进行多播。import{Subject}from'rxjs';constjerry=newSubject();constsubscription=jerry.subscribe((data)=>console.log(data));console.log('ok');jerry.next(111);jerry.next(222);subscription.unsubscribe();console.log('?');jerry.next(333);如果主题在订阅之前开始,上面的示例将打印111、222就是,下图中第5行的111),那么这些组播值在开始组播后就不会被订阅者接收到。如下图:订阅者只会打印订阅主题后收到的组播值222:使用BehaviorSubject可以避免这个问题:订阅者订阅主题之前,后者就开始调用next进行组播,这些组播值也可以被订阅者接收到:更多Jerry的原创文章在这里:《汪子熙》:
