если еще не сработает-кто хочет быть милондоларе нодеЙС

#node.js #discord.js

Вопрос:

если еще не работает со мной

             const filter = (reaction, user) => {
                return ['🇦', '🇧', '🇨', '🇩'].includes(reaction.emoji.name) amp;amp; !user.bot;}
                message.awaitReactions(filter, {max: 1, time: 20000, errors: ["time", "max"]})
                .then(collected => {
                    console.log(random_question.correct)
                    var reaction = collected.first().emoji.name
                    console.log(reaction)
                    if (reaction == '🇦') {
                        if(random_question.correct == "0")
                          return  message.channel.send("bạn vừa trả lời đúng rồi đấy")
                           else message.channel.send(`bạn vừa trả lời sai`)
                        }
                   else if (reaction == 'B') {
                    if(random_question.correct == "1")
                      return  message.channel.send("bạn vừa trả lời đúng rồi đấy")
                       else message.channel.send(`bạn vừa trả lời sai`)
                    }
                   else if (reaction == 'C') {
                    if(random_question.correct == "2")
                      return  message.channel.send("bạn vừa trả lời đúng rồi đấy")
                       else message.channel.send(`bạn vừa trả lời sai`)
                    }
                   else if (reaction == 'D') {
                    if(random_question.correct == "3")
                      return  message.channel.send("bạn vừa trả lời đúng rồi đấy")
                       else message.channel.send(`bạn vừa trả lời sai`)
                    }
                })
                .catch (errors => {
                    message.channel.send(` hết giờ! `);
                });
            })
 

это выводится в консоль:

 {
  correct: 0,
  content: [ 'Orissa', 'Tamil nadu', 'Andhra Pradesh', 'Kerala' ],
  question: 'Heavy Water Project (Talcher) and Fertilizer plant (Paradeep) are famous industries of'
}
 

когда я выбираю «A», он будет отвечать правильно, но когда я выбираю B, C, D, я не могу получить ответ
, может ли кто-нибудь мне помочь?

Ответ №1:

У вас не может быть никаких условных операторов (или чего — либо еще) после return ключевого слова-поместите код следующим образом:

     const filter = (reaction, user) => {
        return ['🇦', '🇧', '🇨', '🇩'].includes(reaction.emoji.name) amp;amp; !user.bot;}
        message.awaitReactions(filter, {max: 1, time: 20000, errors: ["time", "max"]})
        .then(collected => {
            console.log(random_question.correct)
            var reaction = collected.first().emoji.name
            console.log(reaction)
            if (reaction == '🇦') {
                if(random_question.correct == "0")
                  return  message.channel.send("bạn vừa trả lời đúng rồi đấy")
                   
                } else {
message.channel.send(`bạn vừa trả lời sai`)
}
           else if (reaction == 'B') {
            if(random_question.correct == "1")
              return  message.channel.send("bạn vừa trả lời đúng rồi đấy")
               
            } else {
message.channel.send(`bạn vừa trả lời sai`)
}
           else if (reaction == 'C') {
            if(random_question.correct == "2")
              return  message.channel.send("bạn vừa trả lời đúng rồi đấy")
               
            } else {
message.channel.send(`bạn vừa trả lời sai`)}
           else if (reaction == 'D') {
            if(random_question.correct == "3")
              return  message.channel.send("bạn vừa trả lời đúng rồi đấy")
              
            } else {
message.channel.send(`bạn vừa trả lời sai`)
}
        })
        .catch (errors => {
            message.channel.send(` hết giờ! `);
        });
    })
 

(Извините за плохой отступ)

Пояснение: возврат приводит к тому, что код после него не запускается. Кроме того, оператор else должен быть после окончания оператора if.