设置最大侦听器警告是否会影响我的不和谐.js代码?



当我使用 nodemon 重新启动代码时,我收到以下警告:

(node:11576) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 message listeners added. Use emitter.setMaxListeners() to increase limit.

代码:到 Ubuntu Pastebin 链接

我相信这是因为我有>10 个client.on();脚本。我的逻辑是这样的:如果client是运行EventEmitter的,并且每个client.on都是一个Listener,那么将有超过10个听众。

我试过只放emitter.setMaxListeners(Infinity),但我收到以下错误(请注意,行号可能不准确(:

/home/discord/Desktop/channel.js:9
emitter.setMaxListeners
^
ReferenceError: emitter is not defined 
at Object.<anonymous> (/home/discord/Desktop/channel.js:9:1)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
at Startup (internal/bootstrap/node.js:283:19)
at bootsrapNodeJSCore (internal/bootstrap/node.js:743:3)
[nodemon] app crashed - waiting for file changes before starting...

我应该添加什么来解决这个问题?我担心我的一些client.on下标可能无法运行。

在您的情况下,emitter是您的 Discord.js 客户端。
因此,您可以使用它来允许 Infinity 侦听器:

client.setMaxListeners(0);

但这是不可取的,因为代码中的某处可能存在内存泄漏。

最新更新