如何快速学习:[1]Swift编程语言,Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Ojective-C*共同运行于MacOS和iOS平台,用于搭建基于苹果平台的应用程......
2023-03-17 349 编程语言
当订阅 Observable 对象或设置事件监听时,在某个时间点,需要执行取消订阅操作,进而释放操作系统的内存。否则,应用程序可能会出现内存泄露。
看一下,需要在 ngOnDestroy 生命周期钩子中,手动执行取消订阅操作的一些常见场景。
手动释放资源场景
表单
以上方案也适用于其它的表单控件。
路由
Infinite Observables
使用 interval() 或 fromEvent() 操作符时,创建的是一个无限的 Observable 对象。这样的话,不再需要使用它们的时候,就需要取消订阅,手动释放资源。
无需手动释放资源场景
AsyncPipe
需要注意的是,如果使用 @HostListener 装饰器,添加事件监听时,无法手动取消订阅。如果需要手动移除事件监听的话,可以使用以下的方式:
Finite Observable
使用 HTTP 服务或 timer Observable 对象时,也不需要手动执行取消订阅操作。
操作符作用
timer 返回一个发出无限自增数列的 Observable,具有一定的时间间隔,这个间隔由你来选择。
操作符示例
最终建议
应该尽可能少的调用 unsubscribe() 方法,可以在RxJS: Don't Unsubscribe这篇文章中了解与 Subject 相关更多信息。
具体示例如下:
takeUntil 操作符
操作符签名
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
标签: 编程语言JAVASCRIPT
相关文章
如何快速学习:[1]Swift编程语言,Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Ojective-C*共同运行于MacOS和iOS平台,用于搭建基于苹果平台的应用程......
2023-03-17 349 编程语言
web图表开发工具FineReport:[11]连续分组,数据库表数据是按照时间先后录入的,查询的时候希望按照时间先后,某个字段连续相同的话就合并起来显示,这样的报表可以通过相邻连续分组来实现。......
2023-03-17 573 编程语言