【发布时间】:2016-06-01 08:42:07
【问题描述】:
情况:
我有 X (0-20) 个图像需要按顺序显示,每个图像之间都有延迟。
我尝试使用 for 循环和 setTimeout 来实现它,但难以以同步顺序运行内部代码。
例如:
for(x=0;x<20;x++) {
setTimeout(doSomething(), 5000);
}
doSomething() {
setTimeout(function() {alert("test")},1000);
}
如果我没记错的话,我应该每 6 秒看到一次警报,持续 20 次。 但是,发生的情况是 6 秒后我立即看到所有警报(或我放入 doSomething 的任何内容)
如何让我的 for 循环等待内码完成?
【问题讨论】:
-
或者你也可以这样做
setTimeout(doSomething(), (x+1) * 5000); -
您的方法将在前一个计时器的 5000 毫秒后安排每个计时器。假设第一个 doSomething() 花了大约 7000 毫秒,下一个 Timer 会因为我们处于单线程环境而延迟吗?
标签: javascript settimeout