如果要在遍历数组的同时调用多个异步函数,并且需要在所有异步函数都执行完之后获取返回值,可以使用 JavaScript 中的 Promise 对象。
可以使用 Promise.all() 方法来实现这个目的。Promise.all() 方法接收一个数组,其中包含了多个 Promise 对象,并返回一个新的 Promise 对象。当所有的 Promise 对象都成功完成(resolve)时,新的 Promise 对象也会成功完成(resolve),并将所有 Promise 对象的返回值作为一个数组传递给回调函数。
下面是一个示例代码:
const array = [1, 2, 3];
const asyncFunction = (value) => {
return new Promise((resolve) => {
setTimeout(() => {
resolve(value * 2);
}, 1000);
});
};
const asyncFunctions = array.map((value) => asyncFunction(value));
Promise.all(asyncFunctions)
.then((results) => {
console.log(results); // [2, 4, 6]
})
.catch((error) => {
console.error(error);
});
在上面的代码中,我们遍历了一个数组,并对数组中的每个值调用了 asyncFunction() 函数,该函数会返回一个 Promise 对象。然后使用 Promise.all() 方法将这些 Promise 对象包装成一个新的 Promise 对象。当所有的 Promise 对象都成功完成时,就会调用回调函数,并将所有 Promise 对象的返回值作为一个数组传递给回调函数。
需要注意的是,如