位置: 编程技术 - 正文

用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 安装)

  • 小规模纳税人开普票要交税吗
  • 进项发票已认证,发现发票有问题怎么办
  • 耕地占用税退税政策
  • 我国增值税的纳税人是如何管理的
  • 本年利润怎么结转分录
  • 增值税票购买份数满了怎么办
  • 一般纳税人印花税是季报还是月报
  • 计提固定资产折旧,车间使用的固定资产折旧1400
  • 小规模纳税人零申报要报哪些税
  • 企业所得税滞纳金从什么时候开始算
  • 畜牧生物工程有限公司
  • 预付款项包括哪些项目
  • 银行承兑汇票怎么取钱
  • 以股权入股要交税吗?
  • 公司单独核算项目财务怎么处理?
  • 公司账户存定期 定期要做利息出纳账吗
  • 多开了一张电子发票怎么办
  • 怎么查公司连续缴纳社保记录
  • 单位为员工报销的博士学费算什么费用
  • 公司聚餐一定要去吗
  • 在建工程暂估入库的账务处理
  • 待抵扣进项税 待认证进项税
  • 个税少扣了怎么账平掉
  • 打开软件窗口后如果没有出现属性面板可执行
  • 一年内的待摊费用可以一次性进入成本吗
  • PHP验证信用卡卡号是否正确函数
  • win11不能用u盘
  • 继续涉入资产会计处理
  • 短期借款利息计算
  • 依夫城堡
  • 元宇宙band
  • php 查找数组元素
  • 出借和出租包装物的区别
  • 应收借方表示什么
  • ml神经网络
  • php禁用system用什么绕过
  • 残保金如何缴纳残疾人工资如何扣除
  • 贷款 减值
  • 受托加工收到的材料怎么入账
  • 残保金最新
  • 出租的厂房折旧记哪里
  • 小规模纳税人应交增值税明细科目
  • mysql 分片优缺点
  • 建筑劳务公司一年赚多少钱
  • 保险合同包含什么
  • acca中ebq等于
  • 域名 续费
  • 汇算清缴期间费用福利费填哪里
  • 哈罗单车说明
  • 企业购进货物暂欠货款
  • 无形资产根据什么科目填列
  • 事业单位的股东是谁
  • 预付账款跨年处理分录
  • 在建工程账务处理问题有哪些
  • 本期应征增值税销售额是什么意思
  • 全额抵扣怎么申报
  • 商业企业会计分录大全
  • MySql 5.6.14 winx64配置方法(免安装版)
  • jmeter怎么连接数据库
  • 新疆喀什地区身份证号码开头
  • windows 安装源
  • centos 安装chia
  • centos6.0安装教程
  • mac的icloud
  • 电脑系统重装win8
  • linux创建个人主页
  • find.exe应用程序错误
  • windows8.1安装windows7
  • Win10 Mobile Build 14327上手视频评测
  • win8桌面不见了
  • JavaScript中的变量名不区分大小写
  • Extjs gridpanel 出现横向滚动条问题的解决方法
  • awk实例
  • android面试题及答案2021
  • 玩转cmd命令
  • mongoose操作
  • 简述activity的生命周期中有哪几种状态
  • 浙江增值税电子普通发票用支付宝怎么开
  • 国家税务总局的官网
  • 锂电池缴纳消费增值税吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设