node系列扯犊子之八Events模块
2021/5/9 12:27:49
本文主要是介绍node系列扯犊子之八Events模块,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
起因:回调函数模式让 Node 可以处理异步操作。但是,为了适应回调函数,异步操作只能有两个状态:开始和结束。对于那些多状态的异步操作(状态1,状态2,状态3,……),回调函数就会无法处理,你不得不将异步操作拆开,分成多个阶段。每个阶段结束时,调用下一个回调函数。
解决:为了解决这个问题,Node 提供 Event Emitter 接口。通过事件,解决多状态异步操作的响应问题。
1、Event Emitter 是一个接口,可以在任何对象上部署。
这个接口由events模块提供。
events模块的EventEmitter是一个构造函数,可以用来生成事件发生器的实例emitter。
然后,事件发生器的实例方法on用来监听事件,实例方法emit用来发出事件。
2、Event Emitter 接口可以部署在任意对象上,使得这些对象也能订阅和发布消息。
Event Emitter 的实例方法
emitter.on(name, f) 对事件name指定监听函数f
emitter.addListener(name, f) addListener是on方法的别名
emitter.once(name, f) 与on方法类似,但是监听函数f是一次性的,使用后自动移除
emitter.listeners(name) 返回一个数组,成员是事件name所有监听函数
emitter.removeListener(name, f) 移除事件name的监听函数f
emitter.removeAllListeners(name) 移除事件name的所有监听函数
Node默认允许同一个事件最多可以指定10个回调函数。超过10个回调函数,会发出一个警告。这个门槛值可以通过setMaxListeners方法改变。
错误捕获
事件处理过程中抛出的错误,可以使用try...catch捕获。
如果不使用try...catch,可以让进程监听uncaughtException事件。
事件类型
Events模块默认支持两个事件。
newListener事件:添加新的回调函数时触发。
removeListener事件:移除回调时触发。
参考链接:
http://javascript.ruanyifeng.com/nodejs/events.html
这篇关于node系列扯犊子之八Events模块的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程
- 2024-11-26Springboot单体架构搭建资料:新手入门教程
- 2024-11-26Springboot单体架构搭建资料详解与实战教程
- 2024-11-26Springboot框架资料:新手入门教程
- 2024-11-26Springboot企业级开发资料入门教程
- 2024-11-26SpringBoot企业级开发资料详解与实战教程
- 2024-11-26Springboot微服务资料:新手入门全攻略