首页 > 解决方案 > setTimeout 在我的 for 循环中不起作用 - 完全跳过它

问题描述

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

 function slowDown () {
   time = setTimeout(function (){
       do something else
   }, 5000);
};

标签: javascriptfor-loopsettimeout

解决方案


而不是这样,为什么不只是设置和间隔,在当前数组值上执行直到它完成,然后清除它?

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

推荐阅读