【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)
相关推荐
nxb556几秒前
云原生:控制器
java·开发语言·云原生
码哥DFS4 分钟前
LRU缓存
前端·javascript·缓存
whcyhhh13 分钟前
头歌实践教学平台:数据科学与大数据技术导论(十)
大数据·开发语言·python
zzzzzz3101 小时前
别急着把页面做成舞台:从 react-bits 看动画组件该怎么选
javascript·react.js·开源
Data_Journal8 小时前
用于网页抓取的 Node-unblocker
大数据·开发语言·数据库·python·scrapy
豆角焖肉8 小时前
SSM 聚合项目搭建:多 Maven 模块项目
开发语言·python·pycharm
Frank_refuel8 小时前
【C++八股】面向对象
开发语言·c++
m0_380743879 小时前
为 OpenAI 兼容接口配置教程
开发语言·python·node.js
万邦科技Lafite10 小时前
阿里巴巴拍立淘按图搜索商品API返回值实践:提升用户购物满意度的关键措施
开发语言·api·开放api·电商开放平台·京东开放平台
小小龙学IT11 小时前
Qt 6 跨平台开发完全指南:从信号槽机制到实际项目落地
开发语言·qt