// 绑定事件 const EventEmitter=require('events'); class CustomEvent extends EventEmitter{} const ce=new CustomEvent(); ce.on('test',()=>{ console.log('this is a test'); }); setInterval(()=>{ ce.emit('test') },1000)
传参:
const EventEmitter=require('events');
class CustomEvent extends EventEmitter{}
const ce=new CustomEvent();
ce.on('error',(err)=>{
console.log(err);
console.log(time);
});
ce.emit('error',new Error('oops!'));
// Error: oops!
// 多个参数
ce.on('error',(err,time)=>{
console.log(err);
console.log(time);
});
ce.emit('error',new Error('oops!'),Date.now());
// Error: oops!
// 1563287056187
调用一次:
const EventEmitter=require('events');
class CustomEvent extends EventEmitter{}
const ce=new CustomEvent();
ce.once('test',()=>{
console.log('test');
});
setInterval(()=>{
ce.emit('test');
},500);
// test 一次
移出事件:
const EventEmitter=require('events');
class CustomEvent extends EventEmitter{}
const ce=new CustomEvent();
function fn1(){
console.log('fn1');
}
function fn2(){
console.log('fn2');
}
ce.on('test',fn1);
ce.on('test',fn2);
setInterval(()=>{
ce.emit('test')
},1000);
setTimeout(()=>{
// ce.removeListener('test',fn1); // 移除单个
ce.removeAllListeners('test')
},3000)