Discord.js — .then не определен, даже если он находится в функции?

#discord #discord.js

#Discord #discord.js

Вопрос:

Примерно через 20 часов поиска ответов, редактирования кода и пробования новых методов. Я сдался и решил спросить здесь .

Мне абсолютно надоел этот фрагмент кода. Что я пытаюсь сделать, так это: 1. Дождитесь, пока сообщение получит 2 реакции 2. После 2 реакций отправьте сообщение на отдельный канал

РЕДАКТИРОВАТЬ: после того, как некоторые пользователи рекомендовали удалить мою глупо размещенную консоль.войдите перед my .тогда этот код теперь переходит к тому, чтобы не ждать реакции на сообщение и пройти весь процесс, не отправляя сообщение на указанный канал. Пожалуйста, потерпите, я все еще учусь.

Вот код:

   client.on('message', msg => {
    const filter = (reaction, user) => reaction.emoji.name === '703033480090484756' amp;amp; user.id === message.author.id;
    msg.awaitReactions(filter, { max: 1, time: 30000, errors: ['time'] })
    .then(collected => {
    const starboard = new Discord.MessageEmbed()
    .setColor(0xFF0000)
    .setAuthor(`${msg.author.username}`, `${msg.author.avatarURL()}`)
    .setDescription(`${msg.author.content}`)
    
     client.channels.cache.get('714842643766444122').send(starboard)})
    .catch(err => console.log(err), ('Passed! Added to starboard.'));
    console.log('Added to Starboard!');
 

Если вам нужна более подробная информация, пожалуйста, спросите.

Комментарии:

1. Вы (пытаетесь) вызвать then свой console.log .

Ответ №1:

 client.on('message', async msg => {
    let rMessage = await msg.channel.send("Test Message");
    await rMessage.react('703033480090484756');
    const filter = (reaction, user) => reaction.emoji.name === '703033480090484756' amp;amp; user.id === msg.author.id;
    rMessage.awaitReactions(filter, { max: 1, time: 30000, errors: ['time'] })
    .then(collected => {
    const starboard = new Discord.MessageEmbed()
    .setColor(0xFF0000)
    .setAuthor(`${msg.author.username}`, `${msg.author.displayAvatarURL()}`)
    //.setDescription(`${msg.author.content}`)
    
     client.channels.cache.get('714842643766444122').send(starboard)})
    .catch(err => console.log(err), ('Passed! Added to starboard.'));
    console.log('Added to Starboard!');
 

Вы использовали .then на своем console.log('Woah! Passed the filter...') .

Комментарии:

1. Да, другой пользователь упомянул об этом. Я удалил это для использования. затем на .awaitreactions. Однако теперь он проходит через весь код до конечной консоли. регистрируйте, чтобы показать завершение, фактически не ожидая реакции на сообщение

2. Отредактировал мой ответ. Если вы сейчас напишете сообщение, оно должно отправить Test Message и отреагировать с помощью смайлика. Если вы нажмете на этот смайлик, в выбранном вами канале должна появиться вставка.