好的,所以我需要在循环中运行超时,而不需要再次调用循环。内部循环需要是一个超时
(function loaded() {
for(var i=0;i<100; i++){
if(!SOMECONDITION){
setTimeout(loaded, 1);
}
}
})();
这段代码几乎工作完美,除了如果不满足条件,它会召回整个循环。我只需要它像这样在循环中回忆…但是这行不通。
for(var i=0;i<100; i++){
(function loaded(i) {
if(!SOMECONDITION){
setTimeout(loaded, 1);
}
})(i);
}
变量I必须能够在循环中传递。
有点复杂,也许有人能够简化,但是…我认为你需要两个函数,一个将i
捕获到闭包中,一个没有参数,因此可以将其作为超时调用。
for (var i = 0; i < 100; i++) {
(function(i) {
function loaded() {
if (!SOMECONDITION) {
setTimeout(loaded, 1);
}
};
loaded();
})(i);
};