在不多次调用的情况下在循环内执行异步函数,可以使用async/await
结合Promise.all()
方法来实现。
首先,将异步函数定义为async
函数,以便在函数内部使用await
关键字来等待异步操作的完成。
然后,在循环内部创建一个数组,用于存储每次循环中返回的Promise
对象。
接着,在循环内部调用异步函数,并将返回的Promise
对象添加到数组中。
最后,使用Promise.all()
方法来等待所有异步操作的完成,并获取它们的结果。
下面是一个示例代码:
async function executeAsyncFunction() {
const promises = [];
for (let i = 0; i < 10; i++) {
const promise = asyncFunction(); // 调用异步函数,并将返回的 Promise 对象添加到数组中
promises.push(promise);
}
const results = await Promise.all(promises); // 等待所有异步操作的完成,并获取结果
console.log(results);
}
async function asyncFunction() {
return new Promise((resolve) => {
setTimeout(() => {
resolve('异步操作完成');
}, 1000);
});
}
executeAsyncFunction();
在上述示例中,executeAsyncFunction()
函数会在循环内部调用asyncFunction()
异步函数,并将返回的Promise
对象添加到promises
数组中。然后,使用Promise.all()
方法等待所有异步操作的完成,并获取它们的结果。最后,将结果打印到控制台。
这种方法可以确保在不多次调用的情况下,在循环内部执行异步函数,并且能够获取到每次异步操作的结果。
领取专属 10元无门槛券
手把手带您无忧上云