【问题标题】:Does the setMaxListeners warning affect my discord.js code?setMaxListeners 警告会影响我的 discord.js 代码吗?
【发布时间】:2020-03-25 11:17:06
【问题描述】:

当我使用 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 下标可能无法运行。

【问题讨论】:

  • 10 个听众并不多,我建议你应该寻找泄漏。
  • 这不是泄漏
  • 如果您查看我的代码,我有 >10 个 client.ons,这就是导致它的原因,因此您的建议没有用

标签: javascript node.js discord.js eventemitter nodemon


【解决方案1】:

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

client.setMaxListeners(0);

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-17
    • 2013-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    相关资源
    最近更新 更多