赞
踩
EventEmitter 像是 Vue2 的event bus,或者Vue3 的 mitt。主要采用了发布订阅模式来处理事件。
const EventEmitter = require('events');
const event = new EventEmitter()
// 监听(订阅)事件
event.on('test',(data)=>{
console.log(data)
})
event.emit('test','testtt') // 派发事件
监听的数量默认为10 个。当然我们可以自行修改event.setMaxListeners(20)
。
once 方法只监听一次。off 方法停止监听。
可以发现 process 可支持这些方法,底层就是因调用了 EventEmitter 的原型对象给 process 对象。主要使用 Object.setPrototypeOf(target, source)
。
const EventEmitter = require('events')
ObjectSetPrototypeOf(ObjectGetPrototypeOf(process), EventEmitter.prototype)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。