- Node.js 教程
- Node.js - 首页
- Node.js - 简介
- Node.js - 环境搭建
- Node.js - 第一个应用程序
- Node.js - REPL 终端
- Node.js - 命令行选项
- Node.js - 包管理器 (NPM)
- Node.js - 回调函数概念
- Node.js - 上传文件
- Node.js - 发送电子邮件
- Node.js - 事件
- Node.js - 事件循环
- Node.js - 事件发射器
- Node.js - 调试器
- Node.js - 全局对象
- Node.js - 控制台
- Node.js - 进程
- Node.js - 应用程序扩展
- Node.js - 打包
- Node.js - Express 框架
- Node.js - RESTful API
- Node.js - 缓冲区
- Node.js - 流
- Node.js - 文件系统
- Node.js MySQL
- Node.js - MySQL 入门
- Node.js - MySQL 创建数据库
- Node.js - MySQL 创建表
- Node.js - MySQL 插入数据
- Node.js - MySQL 查询数据
- Node.js - MySQL 条件查询
- Node.js - MySQL 排序
- Node.js - MySQL 删除数据
- Node.js - MySQL 更新数据
- Node.js - MySQL 连接查询
- Node.js MongoDB
- Node.js - MongoDB 入门
- Node.js - MongoDB 创建数据库
- Node.js - MongoDB 创建集合
- Node.js - MongoDB 插入数据
- Node.js - MongoDB 查询数据
- Node.js - MongoDB 查询条件
- Node.js - MongoDB 排序
- Node.js - MongoDB 删除数据
- Node.js - MongoDB 更新数据
- Node.js - MongoDB 数据限制
- Node.js - MongoDB 连接查询
- Node.js 模块
- Node.js - 模块
- Node.js - 内置模块
- Node.js - 实用程序模块
- Node.js - Web 模块
- Node.js 有用资源
- Node.js - 快速指南
- Node.js - 有用资源
- Node.js - 讨论
NodeJS - eventTarget.addEventListener() 方法
eventTarget.addEventListener() 方法用于在其调用的 EventTarget 上添加指定的监听器。
EventTarget 类在 Node.js 中不可直接使用。相反,您可以使用 events 模块中的 EventEmitter 类来实现类似的功能。
此方法属于 node:events 模块的EventTarget 类。
语法
以下是 NodeJs eventTarget.addListener() 方法的语法:
eventTarget.addEventListener(type, listener [, options])
参数
此方法具有以下三个参数。
- type:此参数保存一个字符串值,表示要监听的事件类型。
- listener:当发生指定类型的事件时接收通知的对象。
- options:(可选)
- once:布尔值,指示监听器在添加后最多应被调用一次。如果为 true,则在调用监听器后会自动将其移除。
- passive:布尔值,如果为 true,则表示监听器不会调用 Event 对象的 preventDefault() 方法。
- capture:布尔值,指示此类型的事件将在分派到任何 EventTarget 之前分派给指定的监听器。这在 Node.js 中没有直接使用,只是为了 API 的完整性而添加的。
- signal:每当指定的 AbortSignal 对象的 abort() 方法被调用时,监听器将被移除。
返回值
此方法返回事件目标。它允许为一个事件添加多个处理程序,并控制监听器何时被激活。
示例 1
以下是 NodeJs eventTarget.addEventListener() 方法的基本示例。
首先,我们导入了 node:events 模块。然后,我们将带有事件类型“foo”的监听器函数传递给 eventTarget.addEventListener() 方法。
const { EventEmitter, listenerCount } = require('node:events');
function handler(event){
};
const target = new EventTarget();
target.addEventListener('foo', handler);
输出
根据以上程序,我们将一个监听器“handler”添加到事件类型“foo”。
示例 2
在这个程序中,我们正在向 eventTarget.addEventListener() 方法添加两个带有事件类型“foo”的监听器函数。
const { EventEmitter, listenerCount } = require('node:events');
function handler1(event){
};
const handler2 = {
handleEvent(event) {
console.log(event.type); // prints foo to the console
}
};
const target = new EventTarget();
target.addEventListener('foo', handler1);
target.addEventListener('foo', handler2);
输出
根据以上程序,我们将两个事件监听器“handler1”和“handler2”添加到事件类型“foo”。
示例 3
注意:任何指定的监听器仅向“type”事件添加一次,并且每个“capture”可选参数值。
最初,我们导入了 node:events 模块。然后,我们为“foo”事件添加了一个单一的监听器函数“handler”。
const { EventEmitter, listenerCount } = require('node:events');
function handler(event){
};
const target = new EventTarget()
target.addEventListener('foo', handler, {capture: true});
target.addEventListener('foo', handler, {capture: false});
输出
根据以上程序,监听器“handler”可以分别使用 capture: false 值和 capture: true 值添加一次。
示例 4
注意:在 nodejs 中,我们不能直接使用事件目标来生成输出,我们通常使用 EventEmitter 来处理事件,而不是在浏览器中使用的 EventTarget。
在这个例子中,我们使用 EventEmitter 而不是 EventTarget 导入了 node:events 模块。然后,我们传递了一个带有事件类型“foo”的监听器函数。on 方法用于添加事件监听器,emit 方法触发事件。
const { EventEmitter } = require('events');
function handler(event) {
console.log('Event received:', event);
}
const target = new EventEmitter();
target.on('foo', handler);
target.emit('foo', { data: 'Some event data' });
输出
以上程序产生以下输出:
Event received: { data: 'Some event data' }
