因此,我有一个同步函数(client.functionOne
),该函数正在创建Discord.js消息收集器,该收集器将删除发送到通道的消息。该函数还调用异步函数,该异步函数创建一个setTimeout
循环。
由于某种原因,问题是无论何时运行client.functionTwo
中的代码,“ collect”功能都会被阻止,并且运行速度不如没有运行时快。
我不确定为什么要这样做。有人可以帮忙吗?预先感谢。
client.functionTwo = async (channel) => {
let timeout;
const interval = async () => {
// Logic here with several awaits
// Schedule a new timeout
timeout = setTimeout(interval, 2000);
}
interval();
}
client.functionOne = (channel) => {
setTimeout(() => {
const collector = channel.createMessageCollector(() => true, { time: 150000 });
client.functionTwo(channel);
collector.on("collect", (message) => {
if (message.author.bot) return;
message.delete();
});
}, 1000);
}
答案 0 :(得分:0)
// client.functionTwo = async (channel) => {
// let timeout = await setTimeout(interval, 2000);
// }
client.functionOne = async (channel) => {
const collector = await channel.createMessageCollector(() => => true,
{ time: 150000 });
// await client.functionOne(channel);
collector.on("collect", async (message) => {
if (message.author.bot) return;
await message.delete();
});
}
答案 1 :(得分:0)
经过广泛的测试,我能够确定我的问题是由Discord和我使用的JavaScript库的速率限制引起的。