【发布时间】:2012-10-30 19:34:52
【问题描述】:
我有一个存储了多个延迟的数组:myArray[8000,4000,3000,6000,5000]。我需要setTimeout/setInterval 运行每个延迟,然后执行一段特定的代码。比如:
myArray[0]=8000;
myArray[1]=4000;
myArray[2]=3000;
myArray[3]=6000;
myArray[4]=5000;
for(var k=0;k<5;k++)
{
setTimeout(function() {
console.log("CODE TO BE EXECUTED");
}, diffArray[k]);
}
所以最终的结果是等待 12 秒运行代码,等待 4 秒运行代码,等待 3 秒运行代码,等待 6 秒运行代码,然后等待 5 秒运行代码。当前代码同时运行它们。
我知道这很可能需要通过递归来完成,我已经尝试了一些方法来让它工作,但没有运气。我让它以一种方式工作,但不幸的是它锁定了 UI 线程,我需要在运行时在 UI 中执行其他操作。对此的任何帮助将不胜感激!
【问题讨论】:
-
我没有看到你的代码有什么大问题。 (除了
diffArray应该是myArray....) -
应该是“结果将等待 8 秒运行代码”,不是吗?
标签: javascript arrays settimeout delay setinterval