【发布时间】:2017-04-07 00:12:00
【问题描述】:
我似乎无法让超时和循环一起工作。如果我删除循环它会起作用,或者如果我删除超时它会起作用。我将一起得到一个无限循环,如果它在 while 循环内部,它似乎不会运行超时函数。
任何帮助将不胜感激!
function doTask (list) {
if (list) {
while (list.length > 0) {
(function(list){
$timeout(function() {
list.splice(0, 1);
console.log("timeout...")
}, 5000);
})(list);
}
}
}
【问题讨论】:
-
那是因为你正在改变 setTimeout 中的长度,它将在 5 秒后被调用,但不会被调用,因为你的代码永远不会退出循环
-
你真正想要达到什么目标?
-
我想循环直到列表为空但延迟循环。
标签: javascript angularjs settimeout splice