当前位置:首页 > 编程笔记 > 正文
已解决

【前端知识】Node——events模块的相关方法

来自网友在路上 11258125提问 提问时间:2023-11-21 10:57:11阅读次数: 125

最佳答案 问答题库1258位专家为你答疑解惑

一、events模块的常用方法

// 事件总线
const EventsEmitter = require('events');const emitter = new EventsEmitter();function HLog(msg){console.log(msg);
}// 监听
emitter.on('hlog', HLog);setTimeout(() => {// 触发,打印emitter.emit('hlog', 'hello emitter!')// 取消监听后,发射的事件就监听不到了emitter.off('hlog', HLog);setTimeout(() => {// 再触发,未打印emitter.emit('hlog', 'hello emitter again!')}, 1000);
}, 2000)

二、events模块的其他方法

const EventsEmitter = require('events');
const ee = new EventsEmitter();
ee.on('func1', ()=>{  })
ee.on('func1', ()=>{  })
ee.on('func1', ()=>{  })ee.on('func2', ()=>{  })
ee.on('func2', ()=>{  })// 1.获取所有监听事件的名称
console.log(ee.eventNames());// 2.获取最大的监听个数
console.log(ee.getMaxListeners());// 3.获取某一个事件名称对应的监听个数
console.log(ee.listenerCount('func1'));// 4.获取某一个事件名称对应的监听器函数(数组)
console.log(ee.listeners('func1'));// 5.once:只监听一次
ee.once('func3', ()=> {console.log('func3!');
})ee.emit('func3');
ee.emit('func3');
ee.emit('func3');// 6.prependListener:前置监听
ee.on('func2', ()=>{console.log('func2 second');
})
ee.prependListener('func2', () => {console.log('func2 first!');
})
ee.emit('func2');// 7.prependOnceListener:前置且只监听一次
ee.on('func1', ()=>{console.log('func1 second');
})
ee.prependOnceListener('func1', () => {console.log('func1 first!');
})
ee.emit('func1');
ee.emit('func1');// 8.移除监听
ee.on('func3', ()=> {console.log('func3!');
})
ee.emit('func3');
ee.removeAllListeners();
ee.emit('func3');
查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"【前端知识】Node——events模块的相关方法":http://eshow365.cn/6-41165-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!