事件队列的核心:事件触发与事件监听器功能的封装。
// 引入 events 模块
var events = require('events');
// 创建 eventEmitter 对象
var eventEmitter = new events.EventEmitter();
eventEmitter.on('some_event', function() {
console.log('some_event 事件触发');
});
setTimeout(function() {
eventEmitter.emit('some_event');
}, 1000);
两种绑定事件监听的方式
// 绑定 connection 事件,处理函数为 listener1
eventEmitter.addListener('connection', listener1);
// 绑定 connection 事件,处理函数为 listener2
eventEmitter.on('connection', listener2);
listenerCount:监听器监听事件的个数
removeListener:移除监听
error事件:触发error事件的对象设置监听器,避免遇到错误后整个程序崩溃
var events = require('events');
var emitter = new events.EventEmitter();
emitter.emit('error');