如果之前的答案正确,我该如何使我的Quizbot提出另一个问题?

时间:2019-09-16 19:40:21

标签: javascript discord.js

所以我试图让我的不和谐机器人问另一个问题,如果先前的答案是正确的。我目前正在使用do while循环来尝试它,但是我陷入了臭名昭著的无限循环,而且我一生都找不到解决该问题的方法。我的代码如下:

{headers:new HttpHeaders({'Access-Control-Allow-Origin': 'http://localhost:8080'})

1 个答案:

答案 0 :(得分:0)

确保为每次迭代更改一个循环条件。

const filter = m => m.author.id === message.author.id;

const listenForAnswer = async () => {
  return (await message.channel.awaitMessages(filter, {
    maxMatches: 1,
    time: 10000,
    errors: ['time', 'maxMatches']
  })).first();
};

const askQuestion = async () => {
  const randomNumber = Math.floor(Math.random()*data.results.length);
  const question = data.results[randomNumber].question;

  message.channel.send(question);

  let answer = await listenForAnswer();
    
  while (answer.content.toLowerCase() !== correctAnswer.toLowerCase()) {
    message.channel.send("Nah.");   
    answer = await listenForAnswer();
  }
  
  // We've made it out of the incorrect loop...
  message.channel.send("hell yeah.");
};

while(true) {
  // Ask questions forever...
  await askQuestion();
}

此示例尚未经过测试。我只是根据您问题中提供的代码所做的假设将它们汇总在一起。