如何在for中打破定时循环?我试过'return','break','throw'。似乎没什么用。它只是继续循环。如果我尝试使用标签,我会收到错误:
未捕获的SyntaxError:未定义的标签'breakout'
var r=0;
breakout:
for(i=0;i<5;i++) {
setTimeout(function() {
if(r) {
alert("works");
} else {
throw new Error(alert("error"));
break breakout;
}
}, 2000);
}
答案 0 :(得分:1)
此函数延迟执行... 2秒后,循环执行其五次迭代。你应该把循环放在回调函数中。
只是问一下,你对此有何意图?
答案 1 :(得分:1)
至于for循环的工作,它的工作原理。试试下面。它的工作原理
for (i=0;i<10;i++)
{
if (i==3)
{
alert("Got break");
break;
}
alert("did not break");
}
这是因为setTimeout是异步函数。请参阅链接using setTimeout synchronously in JavaScript
答案 2 :(得分:0)
根据我对你的代码和你的问题的理解,我认为我们不能打破定时循环,并且在你的代码中,如果你想要中断循环,只需在定时循环块之外保留break语句。
如果我错了,请纠正我。
答案 3 :(得分:0)
为你的超时循环命名。
然后这样做
var yourloop = ...
clearTimeout(yourloop);
你将用这个
打破你的循环超时