setTimeout不起作用,我完全跳过了它


function whatever () {
for (var i=0; i < arr.length; i++) {
do something
slowDown();
};
};
function slowDown () {
time = setTimeout(function (){
do something else
}, 5000);
};

与其这样,为什么不设置和间隔,对当前数组值执行,直到它完成,然后清除它?

let ctr = 0, time = setInterval(function() {
let curitem = arr[ctr];
// do somethign with curitem
if (++ctr >= arr.length) clearInterval(time)
}, 5000);

@vlaz在对问题的评论中指出的是正确的:

slowDown((将安排稍后执行的内容。它实际上不会减缓任何事情。如果你有一个10个项目的循环,那么你只需要安排10个任务在5秒钟后执行。

不确定这是否有帮助,但我认为这很相似https://stackoverflow.com/a/5226333/10293708

最新更新