JavaScript Promise.all 方法详解:并行执行多个 Promise
Promise.all 是一个用于并行执行多个 Promise 的 JavaScript 方法。它接收一个 Promise 数组作为参数,并返回一个新的 Promise。当所有的 Promise 都成功地解决时,返回的 Promise 将会解决,并将所有 Promise 的解决结果作为一个数组传递给它的回调函数。如果其中有一个 Promise 被拒绝,返回的 Promise 将会被拒绝,并传递给它的回调函数拒绝的原因。
例如,如果有三个 Promise,分别为 p1、p2 和 p3,我们可以使用 Promise.all 来并行执行它们:
Promise.all([p1, p2, p3])
.then(results => {
console.log(results); // [p1 的解决值, p2 的解决值, p3 的解决值]
})
.catch(error => {
console.error(error); // 如果任一 Promise 被拒绝,将会打印拒绝的原因
});
上面的代码会等待所有的 Promise 都解决后才会执行回调函数,并将它们的解决结果作为一个数组传递给回调函数。如果有任一 Promise 被拒绝,返回的 Promise 将会立即被拒绝,并将拒绝的原因传递给回调函数。
Promise.all 还有一个变体方法叫做 Promise.allSettled,它不会在任一 Promise 被拒绝时立即拒绝,而是会等待所有 Promise 都解决或被拒绝后才执行回调函数,并返回一个包含每个 Promise 结果的数组。
原文地址: https://www.cveoy.top/t/topic/qrla 著作权归作者所有。请勿转载和采集!