- 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.getMaxListeners() 方法
emitter.getMaxListeners() 方法将帮助我们返回 eventEmitter 的当前最大监听器限制值,该值由 emitter.setMaxListeners(n) 设置。
此方法除了返回 eventEmitter 的最大监听器限制之外,不会执行任何其他操作。
此方法属于Eventemitter类,它是 node:events 模块的内置类。
语法
以下是 NodeJs emitter.getMaxListeners() 方法的语法:
emitter.getMaxListners()
参数
- 此方法不接受任何参数。
返回值
此方法将返回侦听名为 eventName 的事件的监听器函数的数量。
示例 1
以下是 NodeJs emitter.getMaxListeners() 方法的基本示例。
最初,我们导入了 node:events 模块。然后,我们将单个监听器函数 ‘f1()’ 与 eventName ‘myEvent’ 一起传递给 emitter.addListener() 方法。然后,我们通过将 ‘myEvent’ 作为参数调用了 emitter.getMaxListeners() 方法。它返回 ‘10’,因为“默认情况下,EventEmitters 对于特定事件仅接受 10 个监听器”。
const EventEmitter = require('node:events');
const myEmitter = new EventEmitter();
function f1(){
};
myEmitter.addListener('myEvent', f1);
console.log(myEmitter.getMaxListeners());
输出
以上程序产生以下输出:
10
示例 2
在此程序中,我们再次将单个监听器函数 ‘f1()’ 与 eventName ‘myEvent’ 一起传递给 emitter.addListener() 方法。然后,我们通过将默认限制修改为 1 来调用 emitter.setMaxListeners() 方法。
const EventEmitter = require('node:events');
const myEmitter = new EventEmitter();
function f1(){
};
myEmitter.setMaxListeners(1);
myEmitter.addListener('myEvent', f1);
console.log(myEmitter.getMaxListeners());
输出
以上程序产生以下输出:
1
示例 3
在此程序中,我们将监听器限制设置为 ‘1’ 到特定事件 ‘myEvent’,并且我们向名为 ‘myEvent’ 的同一事件添加了 4 个监听器。因此,EventEmitter 将抛出一个警告消息,即“检测到内存泄漏”。
const EventEmitter = require('node:events');
const myEmitter = new EventEmitter();
function f1(){
};
function f2(){
};
function f3(){
};
function f4(){
};
myEmitter.setMaxListeners(1);
myEmitter.addListener('myEvent', f1);
myEmitter.addListener('myEvent', f2);
myEmitter.addListener('myEvent', f3);
myEmitter.addListener('myEvent', f4);
console.log(myEmitter.getMaxListeners());
输出
以上程序产生以下输出:
1 (node:33292) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 2 myEvent listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit (Use `node --trace-warnings ...` to show where the warning was created)
