全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-15 6 分钟 ✍️ juanwangdev

Node.js EventEmitter 事件发射器

EventEmitter 是 Node.js 实现事件驱动模式的核心类,提供事件的注册、触发和移除能力。

基本使用

JavaScript
const EventEmitter = require('events');

const emitter = new EventEmitter();

// 注册事件监听器
emitter.on('message', (data) => {
  console.log('收到消息:', data);
});

// 触发事件
emitter.emit('message', 'Hello World');

常用方法

方法说明
on(event, listener)注册监听器
once(event, listener)注册一次性监听器
emit(event, ...args)触发事件
removeListener(event, listener)移除指定监听器
removeAllListeners(event)移除所有监听器
listeners(event)获取所有监听器

一次性监听器

JavaScript
emitter.once('connect', () => {
  console.log('首次连接');
});

emitter.emit('connect'); // 输出: 首次连接
emitter.emit('connect'); // 无输出

自定义类继承 EventEmitter

JavaScript
const EventEmitter = require('events');

class User extends EventEmitter {
  login(username) {
    this.emit('login', username);
  }
}

const user = new User();
user.on('login', (name) => {
  console.log(`${name} 登录成功`);
});

user.login('张三');

默认单个事件最多注册 10 个监听器,可通过 emitter.setMaxListeners(n) 调整。

要点总结

  • EventEmitter 提供事件的注册、触发、移除能力
  • on 添加监听器,once 添加一次性监听器
  • 通过继承 EventEmitter 可让自定义类支持事件
  • 注意监听器数量限制,避免内存泄漏

📝 发现内容有误?点击此处直接编辑

← 上一篇 Node.js 回调函数
下一篇 → Node.js 事件循环机制
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库