Node.js 事件发射器
如果您在浏览器中使用过 JavaScript,就会知道用户的许多交互都是通过事件处理的:鼠标点击、键盘按键按下、对鼠标移动的反应等等。
在后端,Node.js 提供了使用 events 模块 构建类似系统的选项。
该模块特别提供了 EventEmitter 类,我们将用它来处理事件。
您可以使用以下代码进行初始化
const = ('node:events');
const = new ();
这个对象暴露了许多方法,其中包括 on 和 emit。
emit用于触发一个事件on用于添加一个回调函数,该函数将在事件被触发时执行
例如,让我们创建一个 start 事件,并作为一个示例,我们通过打印到控制台来对此作出反应
eventEmitter.on('start', () => {
.('started');
});
当我们运行时
eventEmitter.emit('start');
事件处理函数被触发,我们得到了控制台日志。
您可以通过将参数作为 emit() 的额外参数传递给事件处理程序
eventEmitter.on('start', => {
.(`started ${}`);
});
eventEmitter.emit('start', 23);
多个参数
eventEmitter.on('start', (, ) => {
.(`started from ${} to ${}`);
});
eventEmitter.emit('start', 1, 100);
EventEmitter 对象还公开了其他几个与事件交互的方法,例如
once(): 添加一个一次性的监听器removeListener()/off(): 从事件中移除一个事件监听器removeAllListeners(): 移除一个事件的所有监听器
您可以在官方文档中阅读有关这些方法的更多信息。