位置: 编程技术 - 正文

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断点调试)

  • 6.72的税率是怎么算的
  • 印花税的缴纳方式有哪三种
  • 小规模可以申请出口退税吗
  • 应付账款应收账款
  • 个税按照计提申报怎么调整
  • 企业中征码怎么办
  • 台湾企业不能在大陆或香港上市吗
  • 出口货物是否属于存货
  • 年化收益率和年利率的区别的例子
  • 结算本月应付职工工资40000元
  • 个税税务稽查
  • 新注册的公司需要公示吗
  • 民办非企业是否可以出资设立公司
  • 电商刷单支付的佣金会计分录
  • 科目余额表借贷方余额不一致
  • 发票抬头写个人税号怎么写
  • 投资收益亏损
  • 银行代扣社保费
  • 初始投资成本与可辨认净资产公允价值
  • 银行利息借贷方怎么做凭证
  • 原始凭证日期大写要求
  • 删除文件时错误是怎么回事
  • 如何利用流产让男人愧疚
  • 苹果电脑录屏的视频保存在哪里
  • php实现的中秋博饼游戏之掷骰子并输出结果功能详解
  • 小规模公司注销流程及费用
  • nvm是啥
  • PHP:mb_http_input()的用法_mbstring函数
  • 进项税额转出会造成增值税应纳税额
  • 补交之前年度税款怎么调账
  • 设计费包含概算费用吗
  • 在产品定额工时怎么算
  • 穹顶高度
  • 阿罗内镇的村落叫什么
  • 上月的会计分录做错了
  • 最新的目标检测算法2020
  • 什么时候进项税转出
  • 确认递延所得税资产时,应估计相关可抵扣
  • 其他综合收益在利润表的哪个位置哪里
  • python3 yaml模块
  • SQL Server 在Management Studio中使用Web浏览器
  • sql server ceiling
  • 应付账款尾差如何处理
  • 股权转让溢价款缴纳增值税
  • sql server 排名函数
  • 企业合并发生的审计费用,评估费用
  • 公司收到注册资本金需要做哪些呢
  • 企业跨区变更地址需要多久
  • 烟叶税的计税依据如何确定
  • 对公账户发票和普通发票不一样吗
  • 独立核算和非独立核算怎么查
  • 现金比率升高
  • 应交税费会计核算
  • 提取银行存款利息分录
  • 税控系统技术维护费的申报抵扣方法
  • 农民工工资专户怎么发放工资
  • 企业失信是什么意思
  • 滞留专票会有什么风险
  • sql is in
  • 查看mysql执行sql日志内容
  • 让64位的Windows Server 2008支持蓝牙的方法
  • windows2003服务不能开启
  • centos 7 安装vnc
  • vsftpd 550错误
  • centos6.10安装教程详解
  • linux block io
  • python安装numpy和matplotlib
  • android开发项目实战+源码教程
  • 深入理解javascript特性.pdf
  • javascript小数四舍五入多种方法实现
  • nodejs实现登录
  • Re: Latest Version: 3.7.9 (January 18th, 2015)
  • unity中time.deltatime
  • 中国裁判文书怎么查个人案件
  • 白云区嘉禾税务局地址
  • 纳税人总机构和分机构不在同一县怎么办
  • 广西税务移动办税平台app
  • 2021沈阳车船税
  • 该纳税人还未申报,请申报成功后
  • 昱铭这个公司名字怎么样
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设