EventEmitter是nodejs事件触发和事件监听功能的封装实现,其中有丰富的有关事件的功能方法
1、事件的监听与触发
const events = require('events');
const emitter = new events.EventEmitter();
//监听事件
emitter.on('connect', function(){
//事件触发时回调
console.log('连接成功');
});
setTimeout(function(){
//3秒后触发connect事件
emitter.emit('connect');
}, 3000);
2、事件传递参数
事件触发时是可以传递参数的,需要在定义回调函数时设置好参数列表
const events = require('events');
const emitter = new events.EventEmitter();
//监听事件
emitter.on('connect', function(arg1, arg2){
//事件触发时回调
console.log('连接成功');
console.log('参数1为:' + arg1);
console.log('参数2为:' + arg2);
});
setTimeout(function(){
//3秒后触发connect事件
emitter.emit('connect', '唐僧', '孙悟空');
}, 1000);
3、除了使用on监听事件之外还可以使用addListener方法监听,效果和on一样一样的
4、once()只监听一次
5、removeListener()移除事件
6、listenerCount()返回监听事件的个数