Node.js的EventEmitter通过_events对象存储事件名与回调函数数组的映射,实现发布-订阅模式;使用on/once注册监听器,emit触发事件并同步执行回调,支持动态添加和移除监听器,是Stream、HTTP等模块的基础机制。

Node.js 的 EventEmitter 类通过维护一个事件名称与回调函数的映射关系,实现了典型的发布-订阅模式。当某个事件被触发时,所有订阅了该事件的监听函数会依次执行。
使用 on 或 once 方法将回调函数绑定到指定事件名上,EventEmitter 内部用对象存储这些事件名和对应的回调列表。
例如:emitter.on('data', callback) 表示订阅名为 'data' 的事件调用 emit 方法时,EventEmitter 会查找对应事件名的监听器数组,并同步执行其中每一个回调函数,传入 emit 提供的参数。
例如:emitter.emit('data', 'hello') 触发 'data' 事件,并把 'hello' 作为参数传递给所有监听器EventEmitter 提供了对订阅关系的动态控制能力。
EventEmitter 使用一个私有的事件对象(_events)来存储事件名到监听器数组的映射。每次 on 或 emit 调用都会操作这个结构。
基本上就这些。EventEmitter 的设计简洁高效,是 Node.js 中很多核心模块(如 Stream、HTTP)的基础。它不依赖外部库,原生支持松耦合的通信方式,非常适合构建可扩展的应用结构。
以上就是Node.js 的 EventEmitter 类是如何实现发布-订阅模式的?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号