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 获取机器人消息

Discord.js 机器人,临时静音命令不会静音

discord.js - 机器人不会添加角色:TypeError:无法读取未定义的属性“添加”

即使没有任何错误,我的 discord.js 机器人也不会回复用户消息 [重复]

尝试使用 discord.js 编辑我的机器人消息时出错

Discord.js 权限覆盖创建频道不会更改权限?