Javascript如何在特定时间后清除间隔

sko*_*kos 7 javascript setinterval

setInterval("FunctionA()", 1000);
Run Code Online (Sandbox Code Playgroud)

现在如何在5秒后清除此间隔,以便我可以实现 -

var i = setInterval("FunctionA()", 1000);
(After 5 seconds)
clearInterval(i);
Run Code Online (Sandbox Code Playgroud)

ant*_*rat 26

你可以使用setTimeout函数来做到这一点:

var i = setInterval(FunctionA ,1000);
setTimeout(function( ) { clearInterval( i ); }, 5000);
Run Code Online (Sandbox Code Playgroud)


iro*_*arm 6

将setTimeout用于clearInterval不是一个理想的解决方案.它会工作,但它会在每个间隔触发你的setTimeout.如果您只是清除间隔,这是可以的,但如果您在执行除清除间隔之外的其他代码时可能会很糟糕.更好的解决方案是使用计数器.如果你的间隔每1000毫秒/ 1秒发射一次,那么你知道它是否会发射5次,这是5秒.那更清洁了.

count=0;
var x=setInterval(function(){
  // whatever code
  if(count > 5) clearInterval(x);
  count++;
}, 1000);
Run Code Online (Sandbox Code Playgroud)

  • @daniel 是的。 (2认同)
  • 这个答案是我一直在寻找的。您所要做的就是将 setInterval 包装到一个变量中,然后根据需要以多少计数调用 clearInterval !谢谢@ironarm (2认同)