在 for 循环中调用带参数的 javascript 函数:有没有办法暂停循环?

Calling a javascript function with parameters in a for loop: is there a way to pause the loop?

我有一组数据值,需要重复调​​用一个 javascript 函数,其中一个接一个地作为参数。所以我正在做一个非常简单的 for 循环。我的问题:我需要暂停循环的每个步骤的执行一秒钟,但我不知道该怎么做。 我已经摆弄过 setTimeout(),但这只适用于整个函数,不适用于 for 循环的一次迭代。有没有办法在下一次迭代之前暂停 for 循环的执行?

Is there a way to pause the execution of the for-loop before the next iteration?

不在正常功能中,不。代替 for 循环,您处理第一次迭代的代码,然后使用 setTimeout 安排下一次迭代,重复直到完成。搜索“setTimeout 循环”将为您找到许多示例。

async 函数中,如果您给自己一个支持 promise 的 setTimeout 版本,则可以使用 for:

const delay = (ms, ...args) => new Promise(resolve => setTimeout(resolve, ms, ...args);

// ...
for (let i = whatever; i < whateverElse; i += something) {
    // Do the thing, then
    await delay(1000);
}

有关 async 函数的更多信息 on MDN

编辑:你有没有编辑问题之类的,我读它是迭代然后在中间随机暂停,而不是每次迭代 1 秒

const arr = [1, 2, 3, 4, 5, 6];

function* iterateArr () {
  for (var i = 0; i < arr.length; i++) {
   console.log(`Number ${i}`)
    yield arr[i];
  }
}

let iterate = iterateArr();

let c = 0;
while (c < 4) {
 console.log(iterate.next());
  c++;
}
console.log("OTHER CODE");
console.log(iterate.next());