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);

event

在执行了1500秒之后移除这个test函数名里的fn2函数

 

 

要移除全部的话

//要全部移除的话

setTimeout(()=>{

ce.removeAllListeners('test');

},1500);