【发布时间】:2017-05-11 03:15:56
【问题描述】:
当我知道 observable 肯定会完成时(通过complete 或error 通知)在我的组件/类超出范围之前,我还需要取消订阅吗防止内存泄漏?换句话说,完成/错误的 observable 是否会自动清理,所以我不必担心?
【问题讨论】:
标签: angular rx-java rxjs system.reactive
当我知道 observable 肯定会完成时(通过complete 或error 通知)在我的组件/类超出范围之前,我还需要取消订阅吗防止内存泄漏?换句话说,完成/错误的 observable 是否会自动清理,所以我不必担心?
【问题讨论】:
标签: angular rx-java rxjs system.reactive
Observable Contract 的订阅和取消订阅部分对您的问题具有明确的意义。它指出:
当 Observable 向其观察者发出 OnError 或 OnComplete 通知时,这将结束订阅。观察者不需要发出 Unsubscribe 通知来结束由 Observable 以这种方式结束的订阅。
可观察的终止部分也提到了这一点:
当 Observable 向其观察者发出 OnError 或 OnComplete 通知时,订阅结束。
所以,不,没有必要取消订阅已完成或出错的 observables。但是,这样做并没有坏处。
【讨论】: