首页 > 解决方案 > 如何让机器人以 2 种不同的反应对自己做出反应

问题描述

我试图让机器人对自己做出反应,同时竖起大拇指。这是我的代码:

const args = message.content.split(' ');
if (message.content.includes('<poll')) {
  message.delete()
  let embed = new Discord.MessageEmbed()
  .setTitle(`Poll In ${message.guild.name}`)
  .setDescription(args.slice(1).join(' '))
  .setFooter(`Started by ${message.author.username}`)
  .setColor('#ffc0cb')

  message.channel.send(embed)
  .then(sentMessage => sentMessage.react(''))
  .catch(console.error)
}

我尝试使用.then两次,但没有成功。

标签: javascriptdiscorddiscord.js

解决方案


试试这个:

message.channel.send(embed)
   .then(sentMessage => {
      sentMessage.react('')
      sentMessage.react('')
});

如果您希望您的机器人按顺序做出反应,您有两种选择:

选项1:

使用async / await

message.channel.send(embed)
   .then(sentMessage => {
      // Don't forget to make your function async, otherwise it won't work
      await sentMessage.react('')
      await sentMessage.react('')
});

选项 2:

.then()的:

message.channel.send(embed)
   .then(sentMessage => sentMessage.react(''))
   .then(sentMessage => sentMessage.react(''))
});

参考:


推荐阅读