setMaxListeners警告会影响我的discord.js代码吗?

问题描述 投票:-1回答:1

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

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

代码:至Ubuntu Pastebin Link

我相信这是由于我有> 10 client.on();个脚本这一事实造成的。这是我的逻辑:如果client是运行EventEmitter的对象,并且每个client.onListener,则将有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下标可能无法正常运行。

javascript node.js discord.js eventemitter nodemon
1个回答
0
投票

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

client.setMaxListeners(0);

但是不建议这样做,因为您的代码中可能存在内存泄漏。

© www.soinside.com 2019 - 2024. All rights reserved.