我应该取消订阅组件中定义的可观察对象吗?

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 请求中获得的可观察值。

如果在组件被销毁之前没有完成,就会造成内存泄漏。 这方面的一个例子是对根据变化更新的数据库的观察。