当Rxjs主题订阅/取消订阅时,如何收到通知

时间:2017-09-15 14:53:16

标签: javascript rxjs

我正在尝试使用Rxjs来管理大型状态树中的垃圾收集。

如何创建一个带有回调函数的运算符,每当可观察量的订阅者数量发生变化时,该函数就会被触发?

1 个答案:

答案 0 :(得分:6)

多种方式,都涉及隐藏您的主题并为消费者提供包装的可观察性:

想知道什么时候订阅你的主题?

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;