Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.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_Time_Set_Settimeout_Cleartimeout - Fatal编程技术网

Javascript 如何在确定的时间内停止设置超时

Javascript 如何在确定的时间内停止设置超时,javascript,time,set,settimeout,cleartimeout,Javascript,Time,Set,Settimeout,Cleartimeout,我只需要停止interval()函数或interval()中的setTimeout 1000毫秒,然后才能让它继续工作您可以尝试: var time = 1000; var point = 0; function interval() { timeout = setTimeout(increment, time);} function increment(){point += 1;document.getElementById("pul").value = point;interval();}

我只需要停止interval()函数或interval()中的setTimeout 1000毫秒,然后才能让它继续工作

您可以尝试:

var time = 1000;
var point = 0;
function interval() { timeout = setTimeout(increment, time);}
function increment(){point += 1;document.getElementById("pul").value = point;interval();}
time2 = 3000;
function fermafatica() {setInterval(ferma, time2);}
function ferma(){clearTimeout(timeout)}
setTimeout
函数在设定的时间后运行给定的函数。这将调用
z()
函数,该函数在提供的
1000
ms时间后清除超时

编辑:一切:见下文

setTimeout(function() {
    z();
    // Do anything else here
}, 1000);
更改函数fermafatica(){setInterval(ferma,time);}


对于
函数fermafatica(){setTimeout(ferma,time);}

您是否询问如何在X秒后清除超时?我会考虑只在静态函数中有一个静态变量(我们称之为X)计数,如果函数每10毫秒重复一次,并且希望它运行1000毫秒,那么当x=100时,清除超时。< /P> < P> OK…我“避免”这个问题。。。。我需要停止设置超时1000毫秒,然后让它正常工作。。。我试着。。。我没有暂停setTimeout,而是使用了另一个time变量

var time = 1000;
var point = 0;
function interval() { timeout = setTimeout(increment, time);}
function increment(){point += 1;document.getElementById("pul").value = point;interval();}
time2 = 3000;
function fermafatica() {setInterval(ferma, time2);}
function ferma(){clearTimeout(timeout)}

这就是我想要的。。。我避免了这个问题,并找到了另一种方法。。。但它是有效的

“撤消清除超时”是什么意思?阻止它运行?您需要展示如何使用
x
y
z
。您的问题有点让人困惑。你是说撤销cleartimeout,还是说运行cleartimeout?你把超时存储在哪里(我知道它在技术上是全局的,但这很糟糕)。不清楚你在问什么,因为clearTimeout不是一个超时,所以如果你想在一个超时中运行函数z,请使用。。。设置超时。我已经编辑了我的答案。请看看这是否解决了你的问题。这不是我正在搜索的,但可能有解决方案…下面的设置超时会破坏所有代码。。。因为n在一定时间内是递增值代码。。。如果我使用另一个setTimeout,递增开始“跳跃”并停止正常。。。不知道为什么..您的完整代码与缩短的代码不同。您有
setInterval(ferma
),它与
setInterval不同(x
在您的第一个示例中。我仍然不知道您所说的
是n递增值code
是什么意思。什么是
n
?是的,名称更改了,但它调用的实际函数与您的示例不一致。例如,在您的真实示例中,您调用的
setInterval的等效函数(z
你有代码,使用clearTimeout函数。你不明白…我需要在1000毫秒后停止clearTimeout…我想我明白了。为什么你没有一个布尔值,如果为true,它会阻止循环函数运行。比如if(bool==true){//执行正常操作}或者{bool=true}然后当你想让它在1000毫秒内不运行时,将bool设置为false。这将使它跳过一个超时周期,这似乎是你想要的。如果我设置bool=true,我设置函数ferma(){clearTimeout(timeout);bool=false},那么代码会像读取true一样读取它。如果你想要完整的代码和html(这是一个愚蠢的游戏…在前孕期…试着去理解…)
 var time = 1000;
    var timecache = 1000;
    fatica = 3000;
    sudore = 3000;
    function interval() { timeout = setTimeout(increment, time);} //here setTimeout uses var time//
    function increment(){console.log(time);point += 1;document.getElementById("pul").value = point;interval();}
    function fermafatica() {time = timecache;setInterval(ferma, fatica);} //here the function equals time to timecache so vas time is always 1000ms//
    function ferma(){time = 10000; setTimeout(fermafatica, sudore);} // then here I transformed the time in 10000 so the first function will take 10000 instead of 1000 in setTimeout//
//plus i put a setTimeout to recall function fermafatica() that reset the time to 1000//