【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)
相关推荐
码界奇点1 天前
Java设计模式精讲从基础到实战的常见模式解析
java·开发语言·设计模式·java-ee·软件工程
卷福同学1 天前
【AI编程】用Codebuddy+lighthouse开发AI年龄模拟网站
javascript·后端
四维碎片1 天前
【Qt】配置安卓开发环境
android·开发语言·qt
源力祁老师1 天前
Odoo 19 制造与会计集成深度解析
前端·javascript·制造
西游音月1 天前
(7)框架搭建:Qt实战项目之主窗体导航栏、状态栏
开发语言·qt
3***49961 天前
Swift Experience
开发语言·ios·swift
iFlow_AI1 天前
iFlow CLI Hooks 「从入门到实战」应用指南
开发语言·前端·javascript·人工智能·ai·iflow·iflow cli
Maybyy1 天前
Chart.js图标绘制工具库
开发语言·javascript·ecmascript
漂流瓶jz1 天前
SourceMap数据生成核心原理:简化字段与Base64VLQ编码
前端·javascript·算法
1***s6321 天前
Python爬虫反爬策略,User-Agent与代理IP
开发语言·爬虫·python