从计时循环内部中断javascript执行
如何在for中中断定时循环?我试过“返回”、“中断”、“抛出”。似乎什么都不管用。它只是继续循环。如果尝试使用标签,则会出现错误: 未捕获的合成错误:未定义的标签“突破”从计时循环内部中断javascript执行,javascript,for-loop,settimeout,break,Javascript,For Loop,Settimeout,Break,如何在for中中断定时循环?我试过“返回”、“中断”、“抛出”。似乎什么都不管用。它只是继续循环。如果尝试使用标签,则会出现错误: 未捕获的合成错误:未定义的标签“突破” var r=0; breakout: for(i=0;i<5;i++) { setTimeout(function() { if(r) { alert("works"); } else { throw new Error(alert("error")); br
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);
}
var r=0;
突破:
对于(i=0;i此函数有一个执行延迟…2秒后,循环已经执行了五次迭代。您应该将循环放在回调函数中
我只是想问一下,你的意图是什么?就“内部断开”循环的工作而言,它是有效的。试试下面,它是有效的
for (i=0;i<10;i++)
{
if (i==3)
{
alert("Got break");
break;
}
alert("did not break");
}
for(i=0;i根据我对你的代码和你的问题的理解,我认为我们不能中断定时循环,在你的代码中,如果你想中断for循环,只需将break语句保持在定时循环块之外
如果我错了,请更正。请为超时循环命名
那就这样做吧
var yourloop = ...
clearTimeout(yourloop);
你将用这个打破你的循环超时。这只是我正在做的一个例子。实际上,我有3个for循环和一个if循环来检查一个条件,如果该条件为false,则执行一些计时函数。你需要理解setTimeout
是异步的,这就是为什么它不起作用。如果你需要重复一个n多次执行函数时,应使用setInterval
代替setTimeout
和循环。