事件模块用于处理各种类型的事件,提供了EventEmitter类来处理这些事件
emitter.addListener()
emitter.emit()
emitter.eventNames()
emitter.getMaxListeners()
emitter.listenerCount()
emitter.listeners()
emitter.off()
emitter.on()
emitter.once()
emitter.prependListener()
emitter.prependOnceListener()
emitter.removeAllListeners()
emitter.removeListener()
emitter.setMaxListeners()
const EventEmitter = require('events')
const door = new EventEmitter()
// 事件触发时的回调函数 可以用addListener代替
door.on('open', () => {
console.log('开门');
})
// 触发事件
door.emit('open')
// 返回所有注册的事件
console.log(door.eventNames())
// 设置可以添加的最大侦听器数量
door.setMaxListeners(20)
// 获取可以添加监听器的最大数量
console.log(door.getMaxListeners());
// 获取作为参数传入的监听器的计数
console.log(door.listenerCount('open'));
// 获取监听器的数组
console.log(door.listeners('open'));
// 移除监听器,参数为函数
door.off('open', () => {
console.log('关闭监听');
})
door.removeListener('open', () => {
console.log('关闭监听');
})
// 只调用一次的回调函数
door.once('close', ()=>{})
// 在所有监听器前边添加,先调用
door.prependListener('open2', ()=>{})
door.prependOnceListener('open3', ()=>{})
// 移除所有监听器
door.removeAllListeners()