var eventEmitter = require('events').EventEmitter;
var life = new eventEmitter();
//官方建议一个事件不要超过10个监听,超过后会出现一个异常,但这个可以手动改
life.setMaxListeners(11); //改成 11 个
function water(who){
console.log(who + 'No1');
}
life.on('No1',water); //监听 No1 事件,然后回调water方法
life.on('No2',function(who){
console.log(who + 'No2事件1');
})
life.on('No1',function(who){
console.log(who + 'No1.2');
})
life.on('No1',function(who){
console.log(who + 'No1.3');
})
life.on('No1',function(who){
console.log(who + 'No1.4');
})
//删除一个监听事件
life.removeListener('No1',water);
//删除所有 , 注意 : 不传参数会把所有监听都删除掉,包括 No1 No2 等等……,传参会把相应的删除掉
life.removeAllListeners('No1');
console.log(life.listeners('No1').length)
console.log(eventEmitter.listenerCount(life,'No1'))
life.emit 是触发事件会返回一个布尔值 ,如果有监听事件,会返回 true ,没有则返回 false
var listener1 = life.emit('No1','我是'); //触发 No1 事件 true
var listener2 = life.emit('No2','我是'); true
var listener3 = life.emit('No3','我是'); false