【Node.js】events

EventEmitter 像是 Vue2 的event bus,或者Vue3 的 mitt。主要采用了发布订阅模式来处理事件。

js 复制代码
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)

js 复制代码
const EventEmitter = require('events')
ObjectSetPrototypeOf(ObjectGetPrototypeOf(process), EventEmitter.prototype)
相关推荐
rzl0233 分钟前
java web5(黑马)
java·开发语言·前端
Amy.Wang35 分钟前
前端如何实现电子签名
前端·javascript·html5
海天胜景37 分钟前
vue3 el-table 行筛选 设置为单选
javascript·vue.js·elementui
今天又在摸鱼37 分钟前
Vue3-组件化-Vue核心思想之一
前端·javascript·vue.js
百锦再41 分钟前
Vue中对象赋值问题:对象引用被保留,仅部分属性被覆盖
前端·javascript·vue.js·vue·web·reactive·ref
jingling5551 小时前
面试版-前端开发核心知识
开发语言·前端·javascript·vue.js·面试·前端框架
FogLetter1 小时前
图片懒加载:让网页飞起来的魔法技巧 ✨
前端·javascript·css
拾光拾趣录1 小时前
JavaScript 加载对浏览器渲染的影响
前端·javascript·浏览器
m0_687399841 小时前
写一个Ununtu C++ 程序,调用ffmpeg API, 来判断一个数字电影的视频文件mxf 是不是Jpeg2000?
开发语言·c++·ffmpeg
爱上语文1 小时前
Redis基础(5):Redis的Java客户端
java·开发语言·数据库·redis·后端