[英]break javascript execution from inside timed loop
如何在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);
}
这个函数延迟执行... 2秒后,循环执行了五次迭代。 你应该将循环放在回调函数中。
只是问一下,你对此有何意图?
至于在for循环中工作,它的工作原理。 试试下面。 有用
for (i=0;i<10;i++)
{
if (i==3)
{
alert("Got break");
break;
}
alert("did not break");
}
它发生的原因是setTimeout是异步函数。 在JavaScript中查看使用setTimeout同步的链接
根据我对你的代码和你的问题的理解,我认为我们不能打破定时循环,并且在你的代码中,如果你想要中断循环,只需在定时循环块之外保留break语句。
如果我错了,请纠正我。
给你的超时循环命名。
然后这样做
var yourloop = ...
clearTimeout(yourloop);
你将用这个来打破你的循环超时
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.