当 Rxjs 主题订阅/取消订阅时如何接收通知 [英] How can I receive notifications when Rxjs Subject is subscribed to / unsubscribed from
本文介绍了当 Rxjs 主题订阅/取消订阅时如何接收通知的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用 Rxjs 作为管理大型状态树中垃圾收集的一种方式.
I'm trying to use Rxjs as a way to manage garbage collection in a large state tree.
如何创建一个带有回调函数的操作符,该回调函数会在每次 observable 的订阅者数量改变时触发?
How can I create an operator that takes a callback function that is triggered every time the number of subscribers to the observable alters?
推荐答案
多种方式,都涉及隐藏你的主题并给消费者一个包装好的 observable:
Multiple ways, all involve hiding your subject and giving consumers a wrapped observable:
想知道什么时候订阅了你的主题?
Want to know when something subscribes to your subject?
const subject = new Subject();
const observable = Observable.defer(() => {
someoneJustSubscribed();
return subject;
});
return observable;
想知道何时有人退订?
const subject = new Subject();
const observable = subject.finally(() => someoneJustUnsubscribed());
return observable;
想知道两者吗?
const subject = new Subject();
const observable = Observable.create(observer => {
someoneJustSubscribed();
const sub = subject.subscribe(observer);
return () => {
someoneJustUnsubscribed();
sub.unsubscribe();
}
});
return observable;
这篇关于当 Rxjs 主题订阅/取消订阅时如何接收通知的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文