通过深入研究角度形式实现,我发现可观察到的角度形式valueChanges / statusChanges是EventEmitters。是否有必要取消订阅这些观测值?自从单独使用EventEmitters以来,我们不退订吗?
_initObservables() {
(this as{valueChanges: Observable<any>}).valueChanges = new EventEmitter();
(this as{statusChanges: Observable<any>}).statusChanges = new EventEmitter();
}
答案 0 :(得分:2)
如果不再需要通知,unsubscribe
始终是一个好习惯。在大多数情况下,您不一定需要使用ngDestroy()
函数。
是否总是需要退订?
不,如果EventEmitter
或Subject
或Observable
在Subscription
所在的同一范围(组件或服务)中,则无需销毁,因为对所有引用的所有引用都将被删除
简而言之,如果Observable
和unsubscribe
的范围不同,请确保Subscription
为Observable
。