理解 Node.js 中的 Event Emitters:如何以及何时使用它们

发布: (2025年12月24日 GMT+8 22:09)
2 min read
原文: Dev.to

Source: Dev.to

什么是 Node.js 中的 Event Emitters?

Node.js 中的 Event Emitters 是其异步、事件驱动架构的核心组成部分。它们通过发出具名事件并使用已注册的回调函数响应这些事件,实现应用不同部分之间的通信。

Event Emitters 如何工作?

  • Node.js 提供了 events 模块以及 EventEmitter 类。
  • EventEmitter 派生的对象可以注册事件监听器并异步发出事件。
  • 每次事件被触发时,监听函数都会执行。

示例:基本用法

const EventEmitter = require('events');
const emitter = new EventEmitter();

// 注册事件监听器
emitter.on('greet', (name) => {
    console.log(`Hello, ${name}!`);
});

// 触发事件
emitter.emit('greet', 'Alice'); // Output: Hello, Alice!

常见用例:自定义日志系统

假设你需要在不同组件之间实现自定义日志解决方案:

  • 创建一个在需要记录时发出事件的 logger。
  • 为这些日志事件附加监听器以处理或存储日志。

示例

const EventEmitter = require('events');

class Logger extends EventEmitter {
    log(message) {
        this.emit('log', message);
    }
}

const logger = new Logger();

// 监听日志事件
logger.on('log', (msg) => {
    console.log(`Log: ${msg}`);
});

logger.log('Server started'); // Output: Log: Server started

小结

  • 使用 Event Emitters 可以在 Node.js 应用的不同部分之间实现松耦合的通信。
  • 非常适合自定义事件、流式 API 或构建模块化系统。

你可以扩展或复用 EventEmitter 来创建强大、模块化的 Node.js 应用。

Back to Blog

相关文章

阅读更多 »

JavaScript 中 Function 的核心前提

这算是 JavaScript 中的函数吗?javascript function fiveSquared { return 5 5; } 从技术上讲,是的。然而,fiveSquared 缺乏真实场景中所需的可复用性……

JS中的函数、对象和数组

函数 函数是一段执行特定任务并且可以重复使用的代码块。 在 JavaScript 中,有三种定义函数的方式: 1. 函数声明