JavaScript 中使用 map 和 Promise.all 获取异步操作结果
在 JavaScript 中,map 返回的是一个新的数组,其中每个元素都是原始数组中每个元素执行回调函数后的结果。如果在 map 中使用了 Promise,那么 map 返回的新数组中的每个元素都是 Promise 对象。如果要在每个 Promise 对象中获取结果,可以使用 Promise.all() 方法将所有 Promise 对象组合成一个新的 Promise 对象,并在 .then() 方法中获取结果。例如:
const arr = [1, 2, 3, 4, 5];
const promiseArr = arr.map(num => {
return new Promise(resolve => {
setTimeout(() => {
resolve(num * 2);
}, 1000);
});
});
Promise.all(promiseArr)
.then(result => {
console.log(result); // [2, 4, 6, 8, 10]
});
在这个例子中,我们使用 map 方法将原始数组中的每个元素转换为 Promise 对象,并返回一个新的数组 promiseArr。我们使用 Promise.all() 方法将 promiseArr 中的所有 Promise 对象组合成一个新的 Promise 对象,并在 .then() 方法中获取结果。在 .then() 方法中,我们可以获取到 promiseArr 中每个 Promise 对象的结果,并以新的数组的形式返回。
原文地址: https://www.cveoy.top/t/topic/ozcQ 著作权归作者所有。请勿转载和采集!