位置: 编程技术 - 正文

node.js学习之事件模块Events的使用示例(node.js实战)

编辑:rootadmin

推荐整理分享node.js学习之事件模块Events的使用示例(node.js实战),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:node.js入门教程,node.js实战,node.js快速入门,node.js教程详细,nodejs实战教程,node.js快速入门,node.js入门教程,node-js,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

本文主要给大家介绍了关于node.js事件模块Events使用的一些示例,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

环境:Node v8.2.1; Npm v5.3.0; OS Windows

1、 Node事件介绍

Node大多数核心 API 都采用惯用的异步事件驱动架构,其中某些类型的对象(触发器)会周期性地触发命名事件来调用函数对象(监听器)。

所有能触发事件的对象都是 EventEmitter 类的实例。 这些对象开放了一个 eventEmitter.on() 函数,允许将一个或多个函数绑定到会被对象触发的命名事件上。 事件名称通常是驼峰式的字符串,但也可以使用任何有效的 JavaScript 属性名。

当 EventEmitter 对象触发一个事件时,所有绑定在该事件上的函数都被同步地调用。 监听器的返回值会被丢弃。

2、events 模块API介绍

3、 一些例子

下面是一些简单的例子,对应上面的API的一个代码实现

3.1 绑定和触发事件

3.2 为事件传递参数

3.3 this 的问题

node.js学习之事件模块Events的使用示例(node.js实战)

当一个普通的监听器函数被 EventEmitter 调用时,标准的 this 关键词会被设置指向监听器所附加的 EventEmitter。

也可以使用 ES6 的箭头函数作为监听器。但是这样 this 关键词就不再指向 EventEmitter 实例:

3.4 异步执行

EventListener 会按照监听器注册的顺序同步地调用所有监听器,监听器函数可以使用 setImmediate() 或 process.nextTick() 方法切换到异步操作模式:

3.5 无限次触发和一次触发

事件默认是可以无限次数的触发的,只要触发一次,对应的监听函数就执行一次;有时候我们希望只执行一次监听函数,可以使用【once】对事件进行绑定

多次触发:

一次触发:

3.6 错误事件

当 EventEmitter 实例中发生错误时,会触发一个 ‘error' 事件,如果 EventEmitter 没有为 ‘error' 事件注册至少一个监听器,则当 ‘error' 事件触发时,会抛出错误、打印堆栈跟踪、且退出 Node.js 进程。

为了防止 Node.js 进程崩溃,可以在 process 对象的 uncaughtException 事件上注册监听器

上面这样的方式并不是最佳实践,最好是为【error】注册监听函数

3.7 获取和修改最大事件监听数量

Node默认一个事件的监听数量为个,超过十个将会发出警告

改变指定的 EventEmitter 实例的监听器限制

3.8 newListener事件

EventEmitter 实例会在一个监听器被添加到其内部监听器数组【之前】触发自身的 ‘newListener' 事件

总结

标签: node.js实战

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

上一篇:详解Node全局变量global模块(node的全局变量有哪些)

下一篇:node.js学习之断言assert的使用示例(node断点调试)

  • 账面价值与计税基础一般会产生差异的是
  • 税务ukey与税控盘的区别
  • 出口退免税是什么意思
  • 车辆购置税可以刷信用卡吗?
  • 纳税申报表包含哪些内容
  • 银行存款日记账电子表格模板
  • 非正常损失免税吗
  • 劳务公司一般纳税人开票几个点
  • 买房时有哪些税要交
  • 哪些纳税人需要实名办税
  • 货款为现金如何做记账账款凭证?
  • 地税发票联丢失要补救报帐有何办法?
  • 库存商品做账
  • 固定资产丢失收入怎么办
  • 机票退票手续费为什么这么贵
  • 个税缴纳期数填1是什么意思
  • 普通发票没有进账怎么办
  • 将自产产品无偿赠送税务处理
  • 企业计提的坏帐会计分录
  • 笔记本设置权限管理在哪
  • 什么是保守型证券
  • 补缴税款会计分录
  • 什么车不用交保险
  • 把桌面文件放到虚拟机
  • php写html
  • 股权转让的条件和方式
  • php中array_multisort对多维数组排序的方法
  • 支付货款怎么做凭证
  • php img
  • 汉密尔顿岛在哪里
  • php的json_encode
  • 弃置费用预计负债递延所得税怎么处理
  • php中函数定义没有返回值类型
  • php获取地理位置
  • 资金平衡表的编制方法
  • 注意力机制的作用
  • php使用正则表达式检测是否包含非数字
  • wordpress文章保存在哪里
  • 股东转让股份会退股吗
  • 权益类证券投资包括
  • 企业以银行存款购买股票
  • 短期借款属于经营活动还是筹资活动
  • 附加税扣款时做成了借税金及附加怎么办
  • 银行日记账怎么做账
  • 向银行申请银行汇票
  • 医疗服务比
  • 进口货物如何支付外汇
  • 全额计提坏账准备有什么作用
  • 什么指的是土地面积
  • 商务费用报销的工作步骤
  • 会计核算职能有全面性吗
  • 内部损益是什么
  • 开发间接费用的折旧包括哪些
  • 年底本年利润如何处理
  • 销售费用进项税抵扣
  • 其他应收款平行记账科目
  • 工程已完工未开发票确认收入吗
  • 企业出现有利润的现象
  • 建筑装饰行业工业化道路研究参考文献
  • mysql常见故障和解决方法
  • mysql 300万条数据
  • 微软更新kb4474419
  • ubuntu系统安装教程详细
  • linux虚拟局域网搭建
  • windowsxp装机图片
  • win10安装固态硬盘打开软件卡
  • ctl.start
  • win7系统如何修改ip地址
  • win7安装显卡驱动显示未知错误
  • win10预览版桌面图标和任务栏不翼而飞怎么办?
  • vim多行匹配
  • javascript高级程序设计最新版
  • 安卓自定义acl文件
  • python中的字典怎么用
  • javascript的弹窗
  • python向csv写入数据
  • python按行读取文本并输出到excel
  • 三方协议暂不支持缴款
  • 如何查询甘肃省学业水平考试成绩
  • 金蝶EAS固定资产变更
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设