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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值