setInterval("FunctionA()", 1000);
现在我该如何在确切的5秒后清除这个间隔,以便达到 -
var i = setInterval("FunctionA()", 1000);
(After 5 seconds)
clearInterval(i);
setInterval("FunctionA()", 1000);
现在我该如何在确切的5秒后清除这个间隔,以便达到 -
var i = setInterval("FunctionA()", 1000);
(After 5 seconds)
clearInterval(i);
您可以使用setTimeout
函数来实现此操作:
var i = setInterval(FunctionA ,1000);
setTimeout(function( ) { clearInterval( i ); }, 5000);
使用setTimeout来清除setInterval并不是一个理想的解决方案。虽然它可以工作,但它会在每个间隔上触发setTimeout。如果你只清除了间隔,那么这是可行的,但如果你除了清除间隔之外还执行其他代码,那么可能会出现问题。更好的解决方案是使用计数器。如果你的间隔每1000ms/1秒触发一次,那么如果它触发了5次,就已经过去5秒钟了。这样更加简洁。
count=0;
var x=setInterval(function(){
// whatever code
if(count >= 4) clearInterval(x);
count++;
}, 1000);
function intervalGap(){
let no = 1;
setInterval(function(){
if(no < 11){
console.log(no);
no++;
}else{
clearInterval(this);
}}, 500); // for every half second
}
intervalGap();
setInterval("FunctionA()", 1000)
和setInterval(FunctionA, 1000)
非常相似,但后者不涉及eval
,因此更加高效。 - lanzz