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

Pet*_*ris 6 javascript rxjs

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

如何创建一个运算符,该运算符采用每次可观察的订户数量改变时触发的回调函数?

Bra*_*don 8

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

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

const subject = new Subject();
const observable = Observable.defer(() => {
  someoneJustSubscribed();
  return subject;
});
return observable;
Run Code Online (Sandbox Code Playgroud)

想知道有人取消订阅的时间?

const subject = new Subject();
const observable = subject.finally(() => someoneJustUnsubscribed());
return observable;
Run Code Online (Sandbox Code Playgroud)

想知道两者吗?

const subject = new Subject();
const observable = Observable.create(observer => {
    someoneJustSubscribed();
    const sub = subject.subscribe(observer);
    return () => {
        someoneJustUnsubscribed();
        sub.unsubscribe();
    }
});
return observable;
Run Code Online (Sandbox Code Playgroud)