我搜索了周围,发现了一些其他类似的问题,但我似乎无法找到解决方案或明确的解释。setTimeout在循环中:回调发生在它们之间没有任何延迟
var content = 'test<br />';
for(var i = 1; i < 6; i++) {
setTimeout(function() {
document.write(content);
}, 3000);
}
我希望for循环中的代码执行5次,每个循环之间有3秒的延迟。当它运行时,至少在表面上看起来像是页面加载时的三秒延迟,然后毫不拖延地遍历所有循环。
我错过了什么?
将3秒与计数器相乘。另外请注意,如果在页面加载后调用document.write – mplungjan 2013-02-16 18:59:29
尽管javascript基于事件,但它有助于将'setTimeout'作为触发未来给定时间的事件,并将函数作为参数提供为该事件的处理程序(即使没有创建事件对象)。 – 2013-02-16 19:01:33
*每个*回调函数都会在循环运行时执行3秒*。 mplungjan建议在3,6,9等时间调度一个秒。 – 2013-02-16 19:02:04