我是否必须取消订阅Angular组件创建的订阅?

时间:2018-05-18 22:02:27

标签: javascript angular typescript rxjs

以此代码为例:

@Component({
  selector: 'some-chart',
  template: '<div></div>,
})
class ChartingThing implements OnInit {
    mySubscription: Subscription = new Subscription();
    ngOnInit() {
         this.mySubscription.subscribe((blah) => {
              console.log(blah);
         });
    }
}

当Angular清理此组件时,会自动销毁订阅吗?或者我需要在ngOnDestroy方法中调用this.mySubscription.unsubscribe()吗?如果Angular正在缓存组件或那种性质的东西,我可以看到需要调用unsubscribe。

这与:Angular/RxJs When should I unsubscribe from `Subscription`

不同

在那里的每个例子中,他们都在谈论取消订阅注入的服务。这是有道理的,因为服务不一定会因为组件被销毁而被销毁。

在这里,我清楚地引用了这个类创建的主题。我想知道ngOnDestroy中mySubscription是否需要completed,或者它是否被清理,因为类被销毁,mySubscription属性会被它或其它东西完全破坏。

0 个答案:

没有答案