首页 > 解决方案 > 如何暂停/恢复/延迟for循环?

问题描述

您将如何暂停/恢复/延迟 Javascript 中的 for 循环?

假设我有这样的东西

for (let i = 0; i < 10; i++) {
   console.log('value of i is',i)
}

我们可以使用类似这样的东西来延迟整个函数,但它不适用于 for 循环

function delayAFn(ms){
    return new Promise(resolve => setTimeout(() => {
        resolve();
    }, ms))
}

标签: javascript

解决方案


我们过去会做的是一种队列类型的设置,如果它仍然很好,您可以使用超时来调用下一次迭代。

function nextStep(i) {
  console.log(`value of i is ${i}`)
  if (i < 9) {
    window.setTimeout(nextStep, 1000, ++i)
  } else {
    console.log('done')
  }
}
nextStep(0)


推荐阅读