如果在javascript中启动后满足条件,则中断设置超时倒计时
我正试图为不和谐制造一个微不足道的机器人。我有一个工作系统,当用户输入一条以“?平凡”开头的消息时,从数组中随机询问一个问题,并在5秒钟后给出列表中相应的答案。现在,如果任何用户在倒计时运行时给出了正确答案,我想让倒计时停止,并显示一条消息。这是我尝试过的,但它不起作用,给出正确的答案不会产生错误,只是什么也不会发生,倒计时会一直持续到它自然结束如果在javascript中启动后满足条件,则中断设置超时倒计时,javascript,settimeout,bots,discord,Javascript,Settimeout,Bots,Discord,我正试图为不和谐制造一个微不足道的机器人。我有一个工作系统,当用户输入一条以“?平凡”开头的消息时,从数组中随机询问一个问题,并在5秒钟后给出列表中相应的答案。现在,如果任何用户在倒计时运行时给出了正确答案,我想让倒计时停止,并显示一条消息。这是我尝试过的,但它不起作用,给出正确的答案不会产生错误,只是什么也不会发生,倒计时会一直持续到它自然结束 if (message.content.startsWith(config.prefix + "trivial")) { var number =
if (message.content.startsWith(config.prefix + "trivial")) {
var number = Math.floor(Math.random() * Questions.length);
if(number % 2 == 0){
number = number;
} else
number = number +1
var question = Questions[number];
var answer = Questions[number +1];
message.channel.send(question);
function giveanswer(){
message.channel.send("Correct Answer: " + answer)
}
myVar = setTimeout (giveanswer, 5000)
if (message.content.startsWith('answer')){
clearTimeout (myVar);
message.channel.send('Congrats!')
}
}
我已经尝试过这个和其他一些类似的变体,但我开始认为我没有走上正确的轨道。
如果(message.content.startsWith('answer')){
你是想对照文本字符串检查“answer”吗
或变量answer
中包含的字符串?感谢您的回复!当discord服务器中的任何人写入“?trifole”(这是包含其他游戏的bot的代码的一部分)时,将运行此代码,这很好。这意味着要检查变量“answer”中包含的字符串。然后需要删除它周围的引号,即startsWith(answer)
还有,每次有人输入除以外的内容时?琐碎的您正在更改您的问题和答案正确!谢谢!但是我已经更改了,它仍然不起作用:(