如何通过其 ID 获取消息然后对其做出反应

时间:2021-02-23 11:56:10

标签: javascript node.js discord discord.js

我正在尝试获取这样一条新创建的消息的消息 ID。 我会用什么来代替 message.channel.fetch(id) 来获取消息 ID?我好像找不到:

async function messageSend() {
  let messageId = await message.channel.send('Test');
  let { id } = messageId;
  const emojiCheck = '✅';
  const emojiNo = '❌';
  const nebzlaID = '569860318608490496';
  message.channel.messages.fetch(id).react(emojiCheck);
  message.channel.messages.fetch(id).react(emojiNo);

  const suggestionDM = new Discord.MessageEmbed()
    .setColor('#fffff')
    .setTitle('There is a new suggestion in abc!').setDescription(`
        User: ${suggestUser}
        \n\nSuggestion: ${suggestion}

        `);
  // ...

1 个答案:

答案 0 :(得分:2)

channel.messages.fetch() 返回一个 promise,这意味着您需要先解决它才能获得可以响应的消息。您可以使用 await:

async function messageSend() {
  const { id } = await message.channel.send('Test');
  const emojiCheck = '✅';
  const emojiNo = '❌';
  const nebzlaID = '569860318608490496';

  const messageToReact = await message.channel.messages.fetch(id);

  messageToReact.react(emojiCheck);
  messageToReact.react(emojiNo);

  // ...

虽然没有必要再次获取它,但您可以简单地对返回的消息做出反应:

async function messageSend() {
  const sentMessage = await message.channel.send('Test');
  const emojiCheck = '✅';
  const emojiNo = '❌';
  const nebzlaID = '569860318608490496';

  sendMessage.react(emojiCheck);
  sendMessage.react(emojiNo);

  // ...