Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果以前的答案是正确的,我怎么能让我的基茨伯特再问一个问题呢?_Javascript_Discord.js - Fatal编程技术网

Javascript 如果以前的答案是正确的,我怎么能让我的基茨伯特再问一个问题呢?

Javascript 如果以前的答案是正确的,我怎么能让我的基茨伯特再问一个问题呢?,javascript,discord.js,Javascript,Discord.js,所以我试图让我的不和谐机器人问另一个问题,如果之前的答案是正确的。我目前正在尝试一个do-while循环,但是我进入了一个臭名昭著的无限循环,我一辈子都找不到如何解决这个问题。我的代码如下所示: message.channel.send(问题); const filter=m=>m.author.id==message.author.id; const answer=await message.channel.await messages(过滤器,{maxMatches:1,时间:10000,错

所以我试图让我的不和谐机器人问另一个问题,如果之前的答案是正确的。我目前正在尝试一个do-while循环,但是我进入了一个臭名昭著的无限循环,我一辈子都找不到如何解决这个问题。我的代码如下所示:

message.channel.send(问题);
const filter=m=>m.author.id==message.author.id;
const answer=await message.channel.await messages(过滤器,{maxMatches:1,时间:10000,错误:['time','maxMatches']})
const ANS=答案。first();
if(ANS.content.toLowerCase()==correctAnswer.toLowerCase()){
做{
var-question=randomQuestion.question;
message.channel.send(问题);
}而(ANS.content.toLowerCase()==correctAnswer.toLowerCase());
//message.channel.send(“该死的,是的”);
}否则{
message.channel.send(“Nah”);
}

确保为每次迭代更改循环的a部分条件

const filter=m=>m.author.id==message.author.id;
const listenForAnswer=async()=>{
返回(等待消息。通道。等待消息(过滤器{
最大匹配:1,
时间:10000,
错误:['time','maxMatches']
})).first();
};
const askQuestion=async()=>{
const randomNumber=Math.floor(Math.random()*data.results.length);
常量问题=数据。结果[randomNumber]。问题;
message.channel.send(问题);
让答案=等待ListenTranswer();
while(answer.content.toLowerCase()!==correctAnswer.toLowerCase()){
message.channel.send(“Nah”);
回答=等待ListenTranswer();
}
//我们从错误的循环中走出来了。。。
message.channel.send(“该死的,是的”);
};
while(true){
//永远问问题。。。
等待提问();

}
在循环中,您不会更改
ans
对象。你必须先阅读答案,然后才能决定是否要更改问题。这让我摆脱了错误的循环!非常感谢。现在我只想知道如何改变这个问题。目前它一次又一次地运行相同的问题!但我可以自己解决这个问题。再次非常感谢!很高兴这有帮助。如果您想使用当前的
getRandomQuestion()
例程编辑您的问题,我们可以查看一下并找出问题所在。我不知道是否允许更改您的代码段,但我只是添加了我缺少的内容,现在它可以正常工作。再次感谢您的帮助!