首页 > 解决方案 > Angular/JavaScript 等效于 C++ 智能指针

问题描述

当我开始学习 Angular 时,我不断遇到诸如“不要忘记在 ngOnDestroy 中销毁 X”之类的句子,其中 X 可能类似于订阅

在 C++ 中有智能指针(可能我已经过时了 15 年以上)。Angular/Javascript 中是否有任何等价物?

所以在这里

this.numberStream = obNumberStream.subscribe(
....

相反,您将拥有类似 numberStreamPtr 的东西,您将引用像 numberStreamPtr().XXX 这样的 Subscription 函数,最重要的是,您不需要调用 unsubscribe,因为它会在调用组件 destroy 时自动调用

标签: angular

解决方案


这里提到了许多方法: https ://blog.angularindepth.com/why-you-have-to-unsubscribe-from-observable-92502d5639d0

但是如果你使用下面的包那么你可以把这个装饰器放在组件上让它自动发生

@AutoUnsubscribe

https://netbasal.com/automagically-unsubscribe-in-angular-4487e9853a88

// 这里还有一个用于 Observables 的简单/标准模式 Angular/RxJs 我什么时候应该取消订阅 `Subscription`


推荐阅读