假设我们有以下代码:
@Component(
// ..
providers: [SomeService]
)
export class SomeComponent {
constructor(someService: SomeService) {}
}
每当someService
被销毁时,SomeComponent
实例是否会被销毁?或者应该通过onDestroy()
挂钩手动销毁它?
答案 0 :(得分:3)
是的,请查看this example
您可以使用服务中的ngOnDestroy挂钩查看自己:
class SomeService{
ngOnDestroy() {
console.log('Service destroy')
}
}
答案 1 :(得分:1)
正如this answer中所述,提供商遵循生命周期并可以OnDestroy
挂钩。当它们的喷射器被摧毁时它们被摧毁。
如果提供者属于组件注入器,则使用组件销毁它。
如果提供者属于根注入者,则使用应用程序销毁它。