位置: 编程技术 - 正文

浅谈Angular 中何时取消订阅(angular1)

编辑:rootadmin

推荐整理分享浅谈Angular 中何时取消订阅(angular1),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:angular nz,angular deviation,angular then,angular1,angular nz,angular then,angular1,angular then,内容如对您有帮助,希望把文章链接给更多的朋友!

你可能知道当你订阅 Observable 对象或设置事件监听时,在某个时间点,你需要执行取消订阅操作,进而释放操作系统的内存。否则,你的应用程序可能会出现内存泄露。

接下来让我们看一下,需要在 ngOnDestroy 生命周期钩子中,手动执行取消订阅操作的一些常见场景。

手动释放资源场景

表单

以上方案也适用于其它的表单控件。

路由

Renderer 服务

Infinite Observables

当你使用 interval() 或 fromEvent() 操作符时,你创建的是一个无限的 Observable 对象。这样的话,当我们不再需要使用它们的时候,就需要取消订阅,手动释放资源。

Redux Store

无需手动释放资源场景

AsyncPipe

当组件销毁时,async 管道会自动执行取消订阅操作,进而避免内存泄露的风险。

Angular AsyncPipe 源码片段

浅谈Angular 中何时取消订阅(angular1)

@HostListener

需要注意的是,如果使用 @HostListener 装饰器,添加事件监听时,我们无法手动取消订阅。如果需要手动移除事件监听的话,可以使用以下的方式:

Finite Observable

当你使用 HTTP 服务或 timer Observable 对象时,你也不需要手动执行取消订阅操作。

timer 操作符

操作符签名

操作符作用

timer 返回一个发出无限自增数列的 Observable,具有一定的时间间隔,这个间隔由你来选择。

操作符示例

最终建议

你应该尽可能少的调用 unsubscribe() 方法,你可以在RxJS: Don't Unsubscribe 这篇文章中了解与 Subject 相关更多信息。

具体示例如下:

takeUntil 操作符

操作符签名

操作符作用

发出源 Observable 发出的值,直到 notifier Observable 发出值。

操作符示例

标签: angular1

本文链接地址:https://www.jiuchutong.com/biancheng/377421.html 转载请保留说明!

上一篇:深入理解Angular4订阅(Subscribe)与取消(深入理解计算机系统)

下一篇:vue.js模仿京东省市区三级联动的选择组件实例代码(京东试用js脚本)

  • 企业所得税汇算清缴账务处理
  • 契税是什么税,怎么算的
  • 出租车发票可以重新开吗
  • 活动板房怎么开发票
  • 售后维修的配件开维修费
  • 房地产企业印花税税目
  • 资产负债和所有者权益三要素反映企业的
  • 企业季度预缴所得税怎么账务处理
  • 2021年税控升级最新版本怎么升级
  • 职工福利费为什么是14%
  • 会计如何做调整会计分录
  • 购买方已抵扣开具红字信息表销售方怎么处理
  • 车辆违章罚款怎么入账
  • 增值税交完之后还要交什么税
  • 借应收账款贷应收账款是什么意思
  • 税款已缴纳可以作废申报吗
  • 科研机构进口直接用于科学研究的仪器免征增值税吗
  • 财务都干些什么
  • 财务费用增加记借方还是贷方
  • win7为什么这么多人用
  • 要看网怎么找
  • 公司成立后多久可以开发票
  • win11不能用u盘
  • 建造合同完工百分比法
  • 对外投资损失是负债吗
  • 以其他方式取得土地使用权
  • 减值准备递延所得税资产
  • 文化事业建设费减免政策
  • php处理xml数据
  • pyecharts怎么用
  • 基训包括哪些
  • metareg命令
  • 中华人民共和国禁毒法第十三条规定
  • 挂靠方项目部账务是否并入被挂靠方公司账务?
  • db2原理
  • 电子发票开出后如何查看
  • 所得税申报表是什么
  • SQLServer2005 XML数据操作代码
  • sql语句批量添加数据
  • 企业享受政府补贴的具体方式
  • 库存暂估入账的会计分录
  • 未付货款尾款会计分录
  • 创业带动就业补贴是给企业的还是员工的
  • 上一年度主营业务成本多计提了
  • 营改增后房租发票可以抵扣吗
  • 经营杠杆系数的推导
  • 银行日记账上月的余额要结转吗
  • 公司盈利的钱怎么拿出来
  • 年金终值计算公式是
  • 企业利润分配明细表
  • 小企业成本核算方法怎么填
  • 实收资本是什么公司
  • mysql安装配置教程5.7.26
  • mysql新手入门
  • 在数据库master中拒绝了create table权限
  • mysql数据库技术介绍
  • windows2003服务
  • windows7怎么打符号
  • 清理的快捷键是什么
  • macos睡眠
  • centos中netspeeder网络加速/优化器的安装方法
  • linux中vi命令详解
  • linux网络设备有哪些
  • cocos 3.x android下home键后,切回游戏时黑屏太久的问题
  • js调用wsdl接口
  • 中间件 .net
  • 不同页面之间传递数据
  • scrollcontroller
  • chrome version
  • javascript的基本数据
  • unity 3d代码
  • unity3d怎么用
  • js最简单的代码
  • javascript的用法
  • android 实例
  • frontpage网页表单
  • python守护线程与非守护线程
  • jquery $each
  • 关联企业业务往来税收调整
  • 江苏电子税务局电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设