首页 > 解决方案 > 如果超时过期如何跳过一段代码

问题描述

我正在使用 discord.js 编写一个简单的不和谐机器人。我正在制作一个“踢”命令,其中,如果用户在 x 秒内没有发送“确认”,则整个命令将被取消。问题是我不知道如何设置超时。如果超时到期,我如何跳过一些代码?

标签: javascriptdiscord.js

解决方案


注意:如果确认是指确认();命令你不能取消它运行或运行另一个代码,而确认是活动的,因为确认();正在阻塞。在这种情况下,我建议检查非阻塞方法。

//Declare a global boolean variable
var expired=false;
function expireIt(){
    expired=true;
}
//x seconds
//three secs for this example
let x=3000;
setTimeout(expireIt(), x);

function whateverYouRun(){
//if expired is true do nothing
if(expired){
//do nothing, time expired
}else{
//your code goes here
}
}

推荐阅读