- 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 - emitter.removeListener() 方法
emitter.removeListener() 方法用于从名为 eventName 的事件的监听器数组中移除指定的监听器函数。
此方法将从监听器数组中移除最近添加的监听器函数实例。如果一个监听器被多次添加到名为 eventName 的事件的监听器数组中,则需要多次调用 removeListener() 方法才能从监听器数组中移除每个实例。
此方法属于 Eventemitter 类,它是 node:events 模块的内置类。
语法
以下是 NodeJs emitter.removeListener() 方法的语法:
emitter.removeListener(eventName, listener)
参数
此方法接受以下两个参数:
- EventName: (必需) 这是方法的第一个参数,它保存事件的名称。它可以是字符串或符号。
- Listener: (必需) 此参数保存回调函数。
返回值
此方法返回对 EventEmitter 的引用,以便可以链接调用。
现在让我们进入在不同场景下使用 Node.js 的 emitter.removeListener() 方法的示例。
示例 1
以下是 NodeJs emitter.removeListener(event, listener) 方法的基本示例。
我们创建了一个包含消息的函数 f1()。然后,我们使用作为第一个参数传递的 eventName (event) 调用 emitter.addListener() 方法,并将 (f1) 传递给方法的 listener 函数参数。因此,该函数被添加到监听器数组中。然后,我们使用 eventName (event) 和 f1() 函数调用 myEmitter.removeListener() 方法。因此,当我们编译并运行程序时,myEmitter.removeListener() 方法将移除名为“event”的事件的监听器函数 f1()。
const EventEmitter = require('node:events');
const myEmitter = new EventEmitter();
function f1(){
console.log('I\'m from function1');
}
myEmitter.addListener('event', f1);
myEmitter.removeListener('event', f1);
myEmitter.emit('event');
输出
上述程序产生以下输出:
Program did not output anything!
示例 2
在此程序中,我们将相同的 eventName 和 listener 函数组合传递给 myEmitter.addListener() 方法。这将导致监听器函数被添加到监听器数组并被多次调用。
const EventEmitter = require('node:events');
const myEmitter = new EventEmitter();
function f1(){
console.log('I\'m from function1');
}
myEmitter.addListener('event1', f1);
myEmitter.addListener('event2', f1);
myEmitter.addListener('event3', f1);
myEmitter.addListener('event4', f1);
myEmitter.removeListener('event1', f1);
myEmitter.removeListener('event2', f1);
myEmitter.emit('event3');
myEmitter.emit('event4');
输出
上述程序产生以下输出:
I'm from function1 I'm from function1
示例 3
注意:默认情况下,事件监听器按添加顺序调用。
我们为单个事件 (event) 多次添加了单个监听器函数 (f1)。然后,我们使用名为“event”的事件和监听器 f1() 调用 myEmitter.removeListener()。
const EventEmitter = require('node:events');
const myEmitter = new EventEmitter();
function f1(){
console.log('Hi');
}
myEmitter.addListener('event', f1);
myEmitter.on('event', f1);
myEmitter.once('event', f1);
myEmitter.removeListener('event', f1);
myEmitter.emit('event');
输出
上述程序产生以下输出:
Hi Hi
