Discord.js 机器人不会执行 .then
Posted
技术标签:
【中文标题】Discord.js 机器人不会执行 .then【英文标题】:Discord.js bot will not perform .then 【发布时间】:2020-12-24 22:36:49 【问题描述】:我正在尝试创建反应消息,但每当我尝试在 .then 中使用 console.log 时,它只会在消息被删除后执行。
async execute(message)
const role = message.guild.roles.cache.find(r => r.name == 'Founder');
if (!role) return message.channel.send(`**$message.author.username**, role not found`);
await message.delete();
const filter = (reaction) => reaction.emoji.name === '✅';
const ReactionMessage = await message.channel.send('React to this message to get the Founder role');
ReactionMessage.react('✅');
ReactionMessage.awaitReactions(filter, max: 10, time: 15000 )
.then(collected => console.log(collected.size))
.catch(err => console.error(err));
我的最终目的是让它为所有对其做出反应的用户添加一个角色,但它甚至不会在我删除消息之前 console.log 收集的大小。任何人都可以帮助我完成这项工作吗?
【问题讨论】:
【参考方案1】:awaitMessages() 只会在消息被删除或时间用完后才解析。您可以做的是创建一个反应收集器并等待收集事件。
这里有一些资源:https://discordjs.guide/popular-topics/collectors.html#reaction-collectors、https://discord.js.org/#/docs/main/stable/class/Message?scrollTo=createReactionCollector
【讨论】:
【参考方案2】:尝试用console.log(collected)
替换console.log(collected.size)
,看看效果如何。
【讨论】:
以上是关于Discord.js 机器人不会执行 .then的主要内容,如果未能解决你的问题,请参考以下文章
discord.js - 机器人不会添加角色:TypeError:无法读取未定义的属性“添加”