前言
Node.js 所有的异步 操作在完成时,都会发送一个事件到事件队列,所有的事件对象都是 EventEmitter 的实例。
EventEmitter存在于events模块中,且events 模块中也仅仅提供了这么一个对象。
EventEmitter 的核心就是事件触发与事件监听器功能的封装,他将作为其它事件的基类来使用,一般不会单独使用。
一、EventEmitter使用示例
//引入events
var events = require('events');
// 创建 eventEmitter 对象
var eventEmitter = new events.EventEmitter();
//回调方法
function func_CallBack(funcName,info){
console.log(funcName + info);
}
//添加监听器
emitter.addListener('connection', listener1);
//监听事件,绑定回调(注册监听器)
emitter.on('connection', func_CallBack);
//监听事件,绑定回调(同一个事件,可以绑定多次)
emitter.on('connection', func_CallBack);
//一次性监听事件
emitter.once('connection', func_CallBack);
//移除监听
emitter.removeListener('connection', func_CallBack);
//移除所有事件监听
emitter.removeAllListeners();
//移除指定事件的所有监听
emitter.removeAllListeners(['connection','connection2']);
//获取指定事件的监听数据
emitter.listenerCount(eventName);
//设置事件监听的最大个数
emitter.setMaxListeners(n);
//获取指定事件的监听实例数组
emitter.listeners(event);
//执行监听
emitter.emit('connection',arg1,arg2,...);
//errore事件
emitter.emit('error', function (e) {
//记日志
throw e;
});