# 事件系统

Node.js 提供了使用 events 模块,用于事件操作,具体上,此模块提供了 EventEmiiter 类,用于处理事件。

该对象暴露了 on 和 emit 方法,其中 on 用于添加事件处理函数,emit 用于触发事件;

# 基本使用

const EventEmitter = require("events");
const eventEmitter = new EventEmitter();
eventEmitter.on("start", () => {
  console.log("开始");
});
eventEmitter.emit("start");

# 传递事件参数

此外,也可以传递事件参数

eventEmitter.on("start", (number) => {
  console.log(`开始${number}`);
});
eventEmitter.emit("start", 101);

eventEmitter.on("start", (start, end) => {
  console.log(`开始${start},${end}`);
});
eventEmitter.emit("start", 1, 2);

eventEmitter.on("start", (event) => {
  console.log(`开始 a:${event.a} b:${event.b}`);
});
eventEmitter.emit("start", {
  a: 1,
  b: 2
});
// 开始 a: 1 b: 2;

# 补充

其他方法

  • once() 添加单次监听器
  • removeListenner() / off() 从事件中移除事件监听器
  • removeAllListeners() 移除事件的所有监听器