【发布时间】:2019-01-24 11:17:33
【问题描述】:
我发现以下构造对我来说有点混乱(打字稿中提供了示例):
let someSubject: Subject<any> = new Subject();
let subscription1: Subscription = someSubject.subscribe((v) => {console.log(v)})
let subscription2: Subscription = someSubject.subscribe((v) => {console.log(v)})
很明显,我可以(并且应该)像这样取消订阅待定订阅:
subscription1.unsubscribe();
subscription2.unsubscribe();
但是 Subject 类确实有一个成员方法unsubscribe。这与主题是Observable 和Observer 的方法是一致的,但是从我在执行以下操作时实际取消订阅的内容来看:
someSubject.unsubscribe();
我是否要取消与该主题相关的所有其他订阅?
【问题讨论】:
-
您几乎肯定不想在
Subject中调用unsubscribe。见Closed Subjects。事实上,这是一个很可能会从 v7 中的Subject中删除的方法。 -
@cartant 我本来想问你从哪里得到这个信息的,但后来我看到你的 RxJS 职业:) 谢谢你指出你的文章,现在很清楚了。
标签: rxjs