好吧,所以我需要在循环内部运行超时而不再重新调用循环。内循环NEEDS是超时。
(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必须能够在循环中传递。
答案 0 :(得分:0)
有点复杂,有些人可能会简化,但是......我认为你需要两个函数,一个是将i
捕获到一个闭包中,一个是没有参数所以它可以被称为超时。
for (var i = 0; i < 100; i++) {
(function(i) {
function loaded() {
if (!SOMECONDITION) {
setTimeout(loaded, 1);
}
};
loaded();
})(i);
};