【问题标题】:Unsubscribe from Observable that doesn't emit anymore取消订阅不再发射的 Observable
【发布时间】:2020-12-24 19:46:44
【问题描述】:

我有一个包含 Subject 的组件,它只在同一个组件中使用(subscribengOnInit 调用,next 在模板中调用)在订阅时是否会导致内存泄漏?

【问题讨论】:

  • 即使您可以继续订阅,为什么不在ngOnDestroy 中取消订阅?
  • @Heretic Monkey 没必要为什么要退订
  • 安全。所以,现在,组件的Subject 没有在其他地方使用。明年,有人来订阅它。现在您遇到了内存泄漏,您可以通过简单地取消订阅来轻松绕过。当然,这取决于你,你比我更了解风险......
  • 最佳实践是在 ngOnDestroy 中完成主题,而不是管理任何订阅。

标签: angular rxjs


【解决方案1】:

如果 observable 是在组件中创建的,它们会同时进入垃圾回收。仅当组件订阅了位于其他位置(例如服务)且未陷入垃圾收集的 observable 时,才会发生泄漏。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-19
    • 1970-01-01
    • 2020-08-29
    • 1970-01-01
    • 2016-07-07
    • 1970-01-01
    相关资源
    最近更新 更多