【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)
相关推荐
leiming66 分钟前
CAN 通信协议学习讲义(带图文 + C 语言代码)
c语言·开发语言·学习
网络点点滴7 分钟前
组件通信-作用域插槽
前端·javascript·vue.js
xht083241 分钟前
PHP vs C语言:核心差异全解析
c语言·开发语言·php
yoothey41 分钟前
Java字节流与字符流核心笔记(问答+考点复盘)
java·开发语言·笔记
LZQ <=小氣鬼=>42 分钟前
React 图片放大镜组件使用文档
javascript·react.js·前端框架·ecmascript
查古穆1 小时前
python进阶-Pydantic模型
开发语言·python
沐知全栈开发1 小时前
Bootstrap4 导航栏
开发语言
kyriewen111 小时前
异步编程:从“回调地狱”到“async/await”的救赎之路
开发语言·前端·javascript·chrome·typescript·ecmascript·html5
早點睡3901 小时前
ReactNative项目Openharmony三方库集成实战:@react-native-clipboard/clipboard
javascript·react native·react.js
AI+程序员在路上1 小时前
嵌入式软件技术大全
linux·开发语言·arm开发·单片机