【发布时间】:2014-07-05 23:32:11
【问题描述】:
我正在尝试在我的函数调用中使用增量 ID 设置循环延迟,以及逐渐增大的延迟时间。我设置的是这样的:
var delay = 0;
var delayMilliseconds = 250;
timeOutArray = [];
for(var i=0; i<100; i++){
delay = i*delayMilliseconds;
timeOutArray[i] = setTimeout(function(){
loadRoute(modelsArray[i], (i+1));
},delay);
}
我遇到的问题是,当任何 loadRoute() 函数被调用时,被引用的“i”已经增加到 99。
我正在寻找一种方法让它在我设置超时时识别“i”的数量,而不是在超时发生的那一刻。
我发现这篇关于使用“承诺”的文章,但有点令人困惑。 Javascript - Wait the true ending of a function that uses setTimeout
有人可以告诉我如何在这些调用中实现承诺,或者任何可以在不将 setTimeout 代码全部包装在 eval() 中的情况下实现的方法吗?
【问题讨论】:
标签: javascript delay settimeout intervals