event
一个事件绑定了,有N中情况可以触发他,但是zhI想让对应的事件处理程序只执行一次就好了,其他就不做特殊处理了。
只响应一次怎么办呢,有一个once函数
const EventEmitter=require('events');
class CustomEvent extends EventEmitter{
}
const ce=new CustomEvent();
//虽然是每500毫秒执行一次,但是因为调用的是once函数,所以只执行一次
ce.once('test',()=>{
console.log('test event');
})
setInterval(()=>{
ce.emit('test')
},500);
如果需要执行2次,或者需要移除工作,就要移除掉removelinster;
const EventEmitter=require('events');
class CustomEvent extends EventEmitter{
}
const ce=new CustomEvent();
function fn1(){
console.log('fn1');
}
function fn2(){
console.log('fn2')
}
//test 是可变的,他zhuyao与ce.emit里的触发函数一致就可以
ce.on('test2',fn1);
ce.on('test2',fn2);
setInterval(()=>{
ce.emit('test2');
},500);
在执行了1500秒之后移除这个test函数名里的fn2函数
要移除全部的话
//要全部移除的话
setTimeout(()=>{
ce.removeAllListeners('test');
},1500);