当所有观察者都取消订阅主题时如何调用方法。
Update
const alphaStore = new BehaviourSubject(0);
observer1 = alphaStore.subscribe(console.log);
observer2 = alphaStore.subscribe(console.log);
当所有这些观察者都取消订阅时。我想要一个被调用的方法。喜欢...
观察者1取消订阅
观察者2取消订阅
所有观察员离开
你所描述的已经是finalize()
操作员。更好地说finalize()
当链释放时调用它的回调,这意味着当所有观察者取消订阅、链完成或出错时调用它。
const subject = new Subject();
const shared = subject.pipe(
finalize(() => console.log('finalize')),
share(),
);
https://stackblitz.com/edit/rxjs-rebfba https://stackblitz.com/edit/rxjs-rebfba
当所有观察者取消订阅时share()
取消订阅触发的源finalize()
.
目前还没有办法区分原因finalize()
被调用。看到这个问题https://github.com/ReactiveX/rxjs/issues/2823 https://github.com/ReactiveX/rxjs/issues/2823以及如何做到这一点的示例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)