我应该取消订阅组件中定义的可观察对象吗?
Should I unsubscribe from observable defined in component?
我有一个 Angular 组件,其中可观察 (BehaviourSubject) 设置为 class 成员。
在某个时候我订阅了它。
问题是:我是否应该在 ngOnDestroy() 中取消订阅?
目前尚不清楚,因为 observable 的生命周期似乎与组件的生命周期相同,可能我们不应该关心内存泄漏。
示例代码:
@Component(...)
class MyComponent implements OnInit {
public subject: BehaviorSubject<string> = new BehaviorSubject('');
public ngOnInit(): void {
this.subject.subscribe(...);
}
}
看到这个答案:
基本上,如果 observable 完成,您不需要取消订阅。
这方面的一个例子是您从 http 请求中获得的可观察值。
如果在组件被销毁之前没有完成,就会造成内存泄漏。
这方面的一个例子是对根据变化更新的数据库的观察。
我有一个 Angular 组件,其中可观察 (BehaviourSubject) 设置为 class 成员。
在某个时候我订阅了它。
问题是:我是否应该在 ngOnDestroy() 中取消订阅?
目前尚不清楚,因为 observable 的生命周期似乎与组件的生命周期相同,可能我们不应该关心内存泄漏。
示例代码:
@Component(...)
class MyComponent implements OnInit {
public subject: BehaviorSubject<string> = new BehaviorSubject('');
public ngOnInit(): void {
this.subject.subscribe(...);
}
}
看到这个答案:
基本上,如果 observable 完成,您不需要取消订阅。 这方面的一个例子是您从 http 请求中获得的可观察值。
如果在组件被销毁之前没有完成,就会造成内存泄漏。 这方面的一个例子是对根据变化更新的数据库的观察。