我想每10分钟发送一次特定服务器中dm的服务器中的所有成员。当它发送所有成员时,它将在控制台中发送完整的消息。 但是它一次发送给每个人,有时在每台小服务器上每10分钟工作一次,但我认为在大服务器上它无法工作,而且我使用帐户而不是Bot也许是为什么?
if (command === `${prefix}dmall`) {
let myGuild = bot.guilds.get('YOU guild HERE')
let list = myGuild.members.map(member => member.user.id)
sendMessage(list, myGuild);
}
});
function sendMessage(list, myGuild) {
for (var i = 0; i < list.length; i++) {
setTimeout((function(index){
return function() {
var member = myGuild.members.get(list[index])
if(!member.user.bot && member) {
member.send('asdsadsa').catch(console.log('Member not allow to send him DM message'))
}
if(index === list.length-1) console.log('done')
};
})(i), 10000 * (i + 1))
}
}
bot.login(botconfig.token);
答案 0 :(得分:0)
“此错误是由于在没有catch块的情况下抛出异步函数而引起的,或者是由于拒绝了未经.catch()处理的诺言而引起的。”
那是因为它在某个地方需要.catch()
。
通常,在代码中,您为每个用户放置一个setTimeout
最好在开始时使用一个setTimeout
(如果需要循环,则使用setInterval
),并在那时进行所有算法。