位置: 编程技术 - 正文

用NODE.JS中的流编写工具是要注意的事项(node.js的流的作用)

编辑:rootadmin

推荐整理分享用NODE.JS中的流编写工具是要注意的事项(node.js的流的作用),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:简述node.js的流的作用,nodejs文件流,node.js的流的作用,node.js 文件流写入,nodejs文件流,node.js的流的作用,node.js的流的作用,node.js的流的作用,内容如对您有帮助,希望把文章链接给更多的朋友!

Node.js中的流十分强大,它对处理潜在的大文件提供了支持,也抽象了一些场景下的数据处理和传递。正因为它如此好用,所以在实战中我们常常基于它来编写一些工具 函数/库 ,但往往又由于自己对流的某些特性的疏忽,导致写出的 函数/库 在一些情况会达不到想要的效果,或者埋下一些隐藏的地雷。本文将会提供两个在编写基于流的工具时,私以为有些用的两个tips。

一,警惕EVENTEMITTER内存泄露

在一个可能被多次调用的函数中,如果需要给流添加事件监听器来执行某些操作。那么则需要警惕添加监听器而导致的内存泄露:

用NODE.JS中的流编写工具是要注意的事项(node.js的流的作用)

在上述代码中,getSomeDataFromStream函数会在通过监听error事件和end事件,来在流报错或没有数据时,完成这个Promise。然而在执行代码时,我们很快就会在控制台中看到报警信息:(node) warning: possible EventEmitter memory leak detected. error listeners added. Use emitter.setMaxListeners() to increase limit.,因为我们在每次调用该函数时,都为传入的流添加了一个额外的error事件监听器和end事件监听器。为了避免这种潜在的内存泄露,我们要确保每次函数执行完毕后,清除所有此次调用添加的额外监听器,保持函数无污染:

二,保证工具函数的回调在处理完毕数据后才被调用

工具函数往往会对外提供一个回调函数参数,待处理完流中的所有数据后,带着指定值触发,通常的做法是将回调函数的调用挂在流的end事件中,但如果处理函数是耗时的异步操作,回调函数则可能在所有数据处理完毕前被调用:

以上的代码callback回调可能会在数据并未被全部处理时就被调用,因为流的end事件的触发时机仅仅是在流中的数据被读完时。所以我们需要额外地对数据是否已处理完进行检查:

这样一来,回调便会在所有数据都处理完毕后触发了。

安装使用Mongoose配合Node.js操作MongoDB的基础教程 安装mongoose使用express准备一个TestMongoDB项目,命令序列如下:expressTestMongoDBcdTestMongoDBnpminstall执行完上面的命令后,使用下面的命令安装mongoose:npminstallm

详解Wondows下Node.js使用MongoDB的环境配置 为了保存网站的用户数据和业务数据,通常需要一个数据库。MongoDB和Node.js特别般配,因为MongoDB是基于文档的非关系型数据库,文档是按BSON(JSON的轻量

Node.js的MongoDB驱动Mongoose基本使用教程 使用mongoose可以让我们更好使用mongodb数据库,而不需要写繁琐的业务逻辑。安装npminstallmongoose初始化使用使用mongoose前,需安装node和mongodb,这里不讲node

标签: node.js的流的作用

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

上一篇:Node.js编写组件的三种实现方式(node. js教程)

下一篇:安装使用Mongoose配合Node.js操作MongoDB的基础教程(mongo 安装)

  • 出口退税 系统
  • 企业中秋晚会活动方案
  • 非盈利组织是什么
  • 税总界定超标准小规模纳税人偷税数额
  • 企业报税盘入账应该记入哪个科目
  • 会计核算体系的建立
  • 独立核算分公司注销与总公司账务
  • 个体工商户不经营会自动注销吗
  • 企业成立股东没有实际出资分录怎么写?
  • 长期股权投资减值准备借贷方向
  • 发票跨月还能重开吗
  • 进项税不够有别的税吗
  • 制作费计入什么会计科目
  • 补记以前年度收入在报表中怎么处理
  • 一般贸易免抵退税计算
  • 输入开票码开具电子发票
  • 如何倒算税前工资的公式
  • 预缴时少缴税款是否需要缴纳滞纳金?
  • 集团内部资金借贷制度
  • 股东增资印花税税目
  • 代征税款手续费规定
  • 如何修复在感情中受的伤害
  • window11系统怎么用
  • macbookzen
  • 存货跌价准备怎么理解
  • 已开发票发生销售退回如何做账?
  • 个体户生产经营费用与家庭生活费用无法划分
  • 管理费用处理方法包括
  • 已抵扣发票开了红字发票怎么做分录?
  • php string函数
  • php数组函数 菜鸟
  • 无形资产的摊销计入什么科目
  • three.js入门指南
  • 面试官:一千万是真的吗
  • 黄石国家公园的占地面积
  • thinkphp input
  • 财政补贴是解决什么问题的
  • 物流辅助服务包括货物运输吗
  • 危废处理需要哪些手续
  • windowlocation用法
  • 现金付款凭证是发票吗
  • 增值税发票如何作废流程
  • 代订饭店
  • 过了汇算清缴还能调整以前年度
  • 应税项目和非应税项目分类
  • 数据库生成随机数函数
  • 什么是金税四期什么时候上线
  • 政府对企业提交的项目申请报告主要从等方面进行核准
  • mysql导出用户和权限
  • 长期待摊费用的最新账务处理
  • 研发费用账务调整合同怎么写
  • 存货抵债如何做分录
  • 未完工属于什么科目
  • 收到承兑汇票如何写收据
  • 代开发票预缴税款的比例是多少呢?
  • 根据企业会计准则第4号固定资产,企业可选用的折旧方法
  • 建账的要点
  • sqlserver的游标
  • SQL入侵恢复xp_cmdshell方法总结
  • 关于存储过程的描述
  • xp系统环境变量
  • 怎样取消开机磁盘自动检查
  • ubuntu配置yum
  • win7安装office2010错误1935
  • win7家庭版开启administrator
  • windows7启用远程访问
  • 我们如何成为专业人员
  • win7 64位系统QQ自动退出重新登录提示您已登录不能重复登录的解决方法
  • win8.1 操作中心
  • Win7注册表怎么恢复命令
  • windows预览0x80072ee2
  • jquery动态添加属性
  • linux shell脚本命令
  • JavaScript中的变量名不区分大小写
  • python图片验证码输入错误不能点登陆
  • 税务蓝和电信蓝一样吗
  • 国家电子税务局江西省电子税务局
  • 残疾人在国企有补贴吗
  • 数码产品关税多少
  • 地税企业所得税是多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设