实例1:
var events=require('events'); var myEmitter = new events.EventEmitter(); //如果事件已经注册,执行事件,返回true //如果事件没有注册,返回false var result=myEmitter.emit('sayHello'); console.log(result);//false
var events=require('events'); var emitter=new events.EventEmitter(); //注册事件链 emitter.on('someEvent',(arg1,arg2)=>{ console.log('listener1,',arg1,arg2); }); emitter.on('someEvent',(arg1,arg2)=>{ console.log('listener2,',arg1,arg2); }); var sayHello=()=>{ console.log('Hello events'); }; emitter.on('sayHello',sayHello); //移除单个事件 //emitter.removeListener('sayHello',sayHello); //移除所有事件 //emitter.removeAllListeners(); //移除事件链 //emitter.removeAllListeners('someEvent'); //获取事件数量,如果没有指定事件名称返回0 var count=emitter.listenerCount('someEvent'); console.log(count); //2 setTimeout(()=>{ //触发事件 emitter.emit('someEvent','参数1','参数2'); //触发事件 emitter.emit('sayHello','参数1'); console.log('事件触发完毕'); },2000);
//EventEitter 中事件监听 var events = require('events'); var util=require('util'); var emitters = new events.EventEmitter(); //如果有移除事件时触发 //一般建议先注册移除监听,再注册添加监听,否则,当注册removeListener时也会触发newListener emitters.on('removeListener',(event,listener)=>{ console.log('remove:'+event); //sayHello //console.log(listener); }); //如果有新注册事件时触发 //每次注册都触发,例如sayHello 注册了两个函数,则触发两次 emitters.on('newListener', (event, listenter) => { console.log('add:'+event); //sayHello //console.info(listenter); // [Function] //console.log(util.inspect(listenter,true)); //{ [Function] [length]: 0, [name]: '' } }); //注册自定义事件 emitters.on('sayHello',()=>{ console.log('Hello events'); }); emitters.on('sayHello',()=>{ console.log('Hello events 2'); }); //移除自定义事件 emitters.removeAllListeners('sayHello'); // //触发事件 emitters.emit('sayHello');