Node.js入门:事件发射器

87 阅读2分钟

大家好,我是前端理想哥!

今天是我们Node.js学习的第七节课,我们来聊聊Node.js中一个非常重要但又容易被忽视的概念——事件发射器(EventEmitter)!💥

如果你之前用过JavaScript做前端开发,那你肯定知道,用户交互(比如点击、键盘输入、鼠标移动)都通过事件来管理。而在Node.js中,我们也可以通过类似的机制来处理后台事件!😎

为什么要用EventEmitter?

Node.js让我们轻松管理事件流,从而处理异步操作,构建高效、灵活的应用。今天,就让我们来看看如何使用它。

首先,我们需要引入events模块:

import EventEmitter from 'node:events';
const eventEmitter = new EventEmitter();

事件触发:

  • emit()方法:用来触发事件

  • on()方法:用来监听事件并执行回调

举个例子,我们来创建一个“start”事件,当事件触发时,控制台输出“started”:

eventEmitter.on('start', () => {
  console.log('started');
});

eventEmitter.emit('start'); // 触发事件

这时,控制台就会输出“started”。🎉

传递参数:

不仅如此,我们还能传递参数给事件处理函数,来让事件更加灵活!

eventEmitter.on('start', (number) => {
  console.log(`started ${number}`);
});

eventEmitter.emit('start', 23); // 输出:started 23

甚至还能传递多个参数:

eventEmitter.on('start', (start, end) => {
  console.log(`started from ${start} to ${end}`);
});

eventEmitter.emit('start', 1, 100); // 输出:started from 1 to 100

其他常用方法:

除了on()emit(),EventEmitter还提供了许多其他方法,帮助你更好地管理事件:

  • once():一次性监听
  • removeListener() / off():移除事件监听器
  • removeAllListeners():移除所有监听器

这只是EventEmitter的冰山一角!在开发中,你会发现它能大大简化你的事件管理,尤其是异步编程时,效果更是立竿见影!🚀

好了,今天的 Node.js 小知识就分享到这里,大家如果有任何问题,欢迎在评论区留言,我们一起讨论!别忘了点赞、收藏、关注哦!下次见!

如果你也对 Node.js 感兴趣,记得关注理想哥,我们一起深入探索。