RxJS订阅始终未关闭的原因排查
RxJS订阅始终未关闭的原因排查
我在公司项目里怀疑存在内存泄漏和RxJS订阅未及时清理的问题已经有一阵子了,于是打算写段简单的代码来排查到底是怎么回事。这段代码逻辑很简单,分三步来:
- 第一步,先加载RxJS库;
- 第二步,通过**猴子补丁(Monkey Patch)**修改Observable的
subscribe方法,这样就能监听并监控所有订阅的状态变化; - 第三步,我创建了这样一个测试订阅:
rxjs.interval(1_000).pipe(rxjs.take(3)).subscribe()
这个Observable原本应该每隔1秒发射一次值,在发射3次后就自动完成并关闭订阅,但实际排查中我发现它的订阅始终没有正常关闭——这也是我怀疑存在内存泄漏的核心原因。
备注:内容来源于stack exchange,提问作者Robin Dos Anjos
相关产品推荐
相关产品推荐

