📅  最后修改于: 2023-12-03 15:27:25.146000             🧑  作者: Mango
在编写 Javascript 程序时,我们经常需要进行循环操作。但是有时我们需要等待循环完成之后再进行下一步操作。本文将介绍如何在 Javascript 中等待循环完成。
使用 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 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 来等待循环完成。在实际应用中,我们需要选择最适合自己需求的方法。