angular - Angular/JavaScript 等效于 C++ 智能指针
问题描述
当我开始学习 Angular 时,我不断遇到诸如“不要忘记在 ngOnDestroy 中销毁 X”之类的句子,其中 X 可能类似于订阅
在 C++ 中有智能指针(可能我已经过时了 15 年以上)。Angular/Javascript 中是否有任何等价物?
所以在这里
this.numberStream = obNumberStream.subscribe(
....
相反,您将拥有类似 numberStreamPtr 的东西,您将引用像 numberStreamPtr().XXX 这样的 Subscription 函数,最重要的是,您不需要调用 unsubscribe,因为它会在调用组件 destroy 时自动调用
解决方案
这里提到了许多方法: 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`
推荐阅读
- r - R 中 sqldf 中的 min(date) 未转换为日期格式
- hibernate - 带有谓词的条件生成器
- uipath - 如何使用带有 UIPATH 的 Excel 迭代 SAP 表并单击每一行?
- javascript - 是否可以在 TypeScript 中使用类型化流?
- jenkins - 在管道中使用 Jenkins 全局凭证 (Jenkinsfile)
- laravel - 向数据表显示年龄 laravel
- android - Android中简单跟踪器的正确方法?
- qt - Qt qml 错误“无法将 [未定义] 分配给 QDeclarativeGeoMapType*”
- python - SpaCy 自定义 NER 模型训练中“丢弃”的含义?
- javascript - 为什么非常简单的 javascript 代码不起作用?