Node.js 中的 Event 模块是实现事件驱动编程的核心模块。它基于观察者模式,允许对象(称为“事件发射器”)发布事件,而其他对象(称为“事件监听器”)可以订阅并响应这些事件。这种模式非常适合处理异步操作和事件驱动的场景。
1. 概念
1.1 事件驱动编程
事件驱动编程是一种编程范式,程序的执行流程由事件(如用户输入、文件读取完成、网络请求响应等)决定。Node.js 的核心设计理念就是基于事件驱动的非阻塞 I/O 模型。
1.2 事件发射器(EventEmitter)
EventEmitter 是 Node.js 中实现事件驱动编程的核心类。它提供了以下功能:
- 发布事件:通过
emit()方法触发事件。 - 订阅事件:通过
on()或addListener()方法监听事件。 - 取消订阅:通过
removeListener()或off()方法移除事件监听器。
2. 定义与用法
2.1 引入 EventEmitter
EventEmitter 是 events 模块的一个类,使用前需要引入:
const EventEmitter = require('events');
2.2 创建事件发射器
可以通过继承 EventEmitter 或直接实例化来创建事件发射器。
方法 1:直接实例化
const EventEmitter = require('events');
// 创建事件发射器实例
const myEmitter = new EventEmitter();
// 监听事件
myEmitter.on('greet', (name) => {
console.log(`Hello, ${
name}!`);
});
// 触发事件
myEmitter.emit('greet', 'Alice'); // 输出:Hello, Alice!
方法 2:继承 EventEmitter
const EventEmitter = require('events');
// 自定义类继承 EventEmitter
class MyEmitter extends EventEmitter {
}
// 创建自定义类的实例
const myEmitter = new MyEmitte

最低0.47元/天 解锁文章
580

被折叠的 条评论
为什么被折叠?



