就像'continue'用于打破当前迭代并继续下一步,我如何在JavaScript中的setInterval()中打破当前迭代并继续下一个间隔而不等待?
var intervalID = window.setInterval( function() {
if(conditionIsTrue) {
// Break this iteration and proceed with the next
// without waiting for 3 seconds.
}
}, 3000 );
答案 0 :(得分:1)
您可以“简单地”(或不那么简单地)清除间隔,然后重新创建它:
// run the interval function immediately, then start the interval
var restartInterval = function() {
intervalFunction();
intervalID = setInterval(intervalFunction, 3000 );
};
// the function to run each interval
var intervalFunction = function() {
if(conditionIsTrue) {
// Break this iteration and proceed with the next
// without waiting for 3 seconds.
clearInterval(intervalID);
restartInterval();
}
};
// kick-off
var intervalID = window.setInterval(intervalFunction, 3000 );
答案 1 :(得分:0)
刚刚测试了这个,它在循环中充当 continue 语句。对于现在发现此问题的编码人员,只需在 setInterval 中使用 return
。
var myRepeater = setInterval( function() {
if(conditionIsTrue) {
return;
}
}, 1000 );
编辑:为了在中断循环的当前执行后立即执行,可以改为执行类似的操作(理论上。如果 conditionIsTrue
保持为 true >):
function myFunction() {
if(conditionIsTrue) {
myFunction();
return;
}
// Interval function code here...
}
var myRepeater = setInterval( myFunction, 1000 );