当提供它们的组件被破坏时,服务是否也会被破坏?

时间:2017-11-14 07:52:55

标签: javascript angular

假设我们有以下代码:

@Component(
    // ..
    providers: [SomeService]
)
export class SomeComponent {
    constructor(someService: SomeService) {}
}

每当someService被销毁时,SomeComponent实例是否会被销毁?或者应该通过onDestroy()挂钩手动销毁它?

2 个答案:

答案 0 :(得分:3)

是的,请查看this example

您可以使用服务中的ngOnDestroy挂钩查看自己:

class SomeService{
  ngOnDestroy() {
    console.log('Service destroy')
  }
}

答案 1 :(得分:1)

正如this answer中所述,提供商遵循生命周期并可以OnDestroy挂钩。当它们的喷射器被摧毁时它们被摧毁。

如果提供者属于组件注入器,则使用组件销毁它。

如果提供者属于根注入者,则使用应用程序销毁它。