NodeJS事件
概念
触发器Emitter会触发命名事件eventName来调用函数Listener
//引入事件模块events
var events = require('events')
//创建触发器对象emitter
var emitter = new events.EventEmitter()
/**为connection事件注册一个监听器,一个事件可绑定多个监听器
* 添加监听器 emitter.on是emitter.addListener的简写
* 添加只能调用一次的监听器 emitter.once(eventName, listener)
*/
emitter.on('connection', function () {
console.log('已连接')
})
/**2s后触发connection事件
* 调用监听器 emmiter.emit(eventName,[args])
*/
setTimeout(function () {
emitter.emit('connection')
}, 2000)
监听器
移除监听器
1、移除指定事件的指定监听器:emitter.removeListener(eName, listener)、emitter.off(eName,listener)
2、移除指定事件的全部监听器:emitter.removeAllListener(eName)
3、移除所有事件的全部监听器:emitter.removeAllListener()
监听器绑定个数
设置监听器最大绑定值:emitter.setMaxListeners(n),当n = 0或Infinity表示不限定绑定数量, 查看指定事件绑定监听器的个数:emitter.listenerCount(eventName)
error事件
如果没有为error事件注册监听器, 则当error事件触发时,会抛出错误、打印堆栈跟踪、并退出Node.js进程, 因此要为会触发error事件的对象设置监听器,避免遇到错误后整个程序崩溃.
本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!