📜  等待循环完成 javascript (1)

📅  最后修改于: 2023-12-03 15:27:25.146000             🧑  作者: Mango

等待循环完成 Javascript

在编写 Javascript 程序时,我们经常需要进行循环操作。但是有时我们需要等待循环完成之后再进行下一步操作。本文将介绍如何在 Javascript 中等待循环完成。

方法一:使用 Promise

使用 Promise 可以让我们在循环完成后执行回调函数。我们可以使用 Promise 的 all 方法来等待多个 Promise 对象的完成。

function loop() {
  let promises = [];
  for (let i = 0; i < 10; i++) {
    let promise = new Promise((resolve) => {
      setTimeout(() => {
        console.log(i);
        resolve();
      }, i * 1000);
    });
    promises.push(promise);
  }
  return Promise.all(promises);
}

loop().then(() => {
  console.log("Loop completed");
});

在上面的示例中,我们使用了一个循环,将每个 Promise 对象添加到一个数组中。这个循环将在每个 Promise 完成后打印出当前的 i 值。最后,我们使用 Promise.all 方法等待所有 Promise 对象的完成,并打印出 "Loop completed"。当所有的 Promise 都完成后,我们执行回调函数。

方法二:使用 async/await

我们也可以使用 async/await 来等待循环完成。我们可以将循环操作封装在一个异步函数中,并等待其完成。

async function loop() {
  for (let i = 0; i < 10; i++) {
    await new Promise((resolve) => {
      setTimeout(() => {
        console.log(i);
        resolve();
      }, i * 1000);
    });
  }
  console.log("Loop completed");
}

loop();

在上面的示例中,我们首先定义了一个异步函数 loop。在这个函数中,我们使用了一个循环,并在每个循环中等待一个 Promise 对象的完成。当所有的 Promise 都完成后,我们打印出 "Loop completed"。最后,我们通过调用 loop 函数来执行这个循环。

结论

在 Javascript 中等待循环完成有多种方法。我们可以使用 Promise 或 async/await 来等待循环完成。在实际应用中,我们需要选择最适合自己需求的方法。