Javascript MaxListenerSexceedawarning:检测到可能的事件发射器内存泄漏。11添加到[客户端]的voiceStateUpdate侦听器
我这里有一个代码,可以检测机器人是否被踢出语音聊天Javascript MaxListenerSexceedawarning:检测到可能的事件发射器内存泄漏。11添加到[客户端]的voiceStateUpdate侦听器,javascript,node.js,memory-leaks,discord.js,Javascript,Node.js,Memory Leaks,Discord.js,我这里有一个代码,可以检测机器人是否被踢出语音聊天 const serverQueue=message.client.queue.get(message.guild.id); const botvc=message.guild.me.voice.channel; 如果(botvc==null){ 如果(服务器队列===未定义){ 常量队列构造={ 连接:空, 歌曲:[], 第2卷, 演奏:是的, }; message.client.queue.set(message.guild.id,queue
const serverQueue=message.client.queue.get(message.guild.id);
const botvc=message.guild.me.voice.channel;
如果(botvc==null){
如果(服务器队列===未定义){
常量队列构造={
连接:空,
歌曲:[],
第2卷,
演奏:是的,
};
message.client.queue.set(message.guild.id,queueConstruct);
const newqueue=message.client.queue.get(message.guild.id);
if(newqueue.songs[0]!==未定义){
newqueue.songs[0]。循环=0;
message.client.queue.delete(message.guild.id);
}否则{
message.client.queue.delete(message.guild.id);
}
}否则{
serverQueue.songs[0]。循环=0;
serverQueue.songs=[];
message.client.queue.delete(message.guild.id);
}
}
这是discord.js中的voicestateupdate
事件,它位于事件处理程序中
代码是否有任何错误或修复内存泄漏的方法?您的代码中可能有其他
voiceStateUpdate
侦听器,或者您的代码多次添加侦听器(调用client.on('voiceStateUpdate',listener)
)。警告(不仅针对Discord.js'Client
)会出现在所有的事件中)告诉您,为一个事件添加太多侦听器(默认值为10)可能是一个错误
调试时,请尝试在客户机上添加断点。在('voiceStateUpdate',…
)上,查找何时添加侦听器。或者,尝试使用该标志查看内存泄漏警告的堆栈跟踪
如果您确实需要超过10个voiceStateUpdate
侦听器(不太可能),请使用更改事件的最大侦听器数:
//将事件的最大侦听器数更改为11
client.setMaxListeners(11)