本文共 1564 字,大约阅读时间需要 5 分钟。
还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,echarts等技术开发,欢迎加底部微信(gis-dajianshi),一起交流。

| No. | 大剑师精品GIS教程推荐 |
|---|---|
| 0 | 地图渲染基础- - - |
| 1 | Openlayers - |
| 2 | Leaflet - |
| 3 | MapboxGL - |
| 4 | Cesium - |
| 5 | threejs - |
| 6 | Shader 编程 |
| 7 | Geoserver |
| 8 | 卫星应用开发教程 |
| 9 | GIS数字孪生与大模型 |
| 10 | 报表与数字大屏 - - |

Node.js 中的 EventEmitter 是一个内置模块,它提供了一种简单的方式来创建和管理事件。几乎所有的Node.js异步操作都是基于事件驱动的,而 EventEmitter 类就是这一切的基础。通过它,你可以定义自定义事件,并监听这些事件的发生,以此来实现代码的解耦和异步通信。
首先,需要从 events 模块引入 EventEmitter。
const EventEmitter = require('events'); 接下来,创建一个 EventEmitter 的实例。
const myEmitter = new EventEmitter();
使用 on 或 addListener 方法注册事件监听器。这些方法接受两个参数:事件名称和当事件触发时要执行的回调函数。
myEmitter.on('event', () => { console.log('事件触发了!');}); 使用 emit 方法触发一个事件,传递给事件处理程序的任何参数都将被传递给监听器。
myEmitter.emit('event'); // 输出: 事件触发了! 下面是一个更具体的例子,展示了如何使用 EventEmitter 来实现简单的消息发布/订阅模式。
const EventEmitter = require('events');class PubSub extends EventEmitter { }const pubsub = new PubSub();// 订阅 'message' 事件pubsub.on('message', (data) => { console.log(`接收到消息: ${ data}`);});// 发布一条消息setTimeout(() => { pubsub.emit('message', 'Hello, this is a message!');}, 2000);console.log('等待消息...'); 'newListener' 和 'removeListener' 之外的任意字符串。emitter.setMaxListeners(n) 方法来改变这个限制。off 或 removeListener 移除监听器,也可以使用 once 添加仅执行一次的监听器。once 或在适当的时候调用 removeListener 可以避免这个问题。EventEmitter 是Node.js事件驱动编程的核心,熟练掌握它对于构建可扩展、松耦合的Node.js应用至关重要。
转载地址:http://tsjfk.baihongyu.com/