JavaScript 中 Promise.all() 方法和 Promise.allSettled() 方法有何区别?
本文将介绍 JavaScript 中 Promise.all() 方法和 Promise.allSettled() 方法的区别。
Promise.all() 方法接受一个或多个 Promise 作为输入,并返回一个单一的 Promise。当所有输入的 Promise 都 fulfilled 时,返回的 Promise 才 fulfilled。如果任何一个输入的 Promise 被 rejected,则返回的 Promise 会被 rejected,并返回第一个 rejection reason。
Promise.allSettled() 方法接受一个或多个 Promise 作为输入,并返回一个单一的 Promise。当所有输入的 Promise 都 settled(包括传入空迭代器的情况)时,返回的 Promise 才 fulfilled,并返回一个对象数组,描述每个 Promise 的结果。
示例 1
在这个例子中,让我们看看 Promise.all 方法是如何工作的。
console.log("Defining three promise values: promise1, promise2 and promise3"); const promise1 = Promise.resolve(1); const promise2 = new Promise((resolve, reject) => { setTimeout(resolve, 2 , 'Promise Two'); }); const promise3 = 3; console.log("Running Promise.all method on all the three promise values") Promise.all([promise1, promise2, promise3]).then((values) => console.log(values));
解释
步骤 1 - 定义三个 Promise 值,分别命名为 promise1、promise2、promise3,并为它们添加值。
步骤 2 - 对所有 Promise 值运行 Promise.all() 方法。
步骤 3 - 显示 Promise 值作为结果。
示例 2
在这个例子中,让我们看看 Promise.allSettled 方法是如何工作的。
console.log("Defining three promise values: promise1, promise2 and promise3"); const promise1 = Promise.resolve(1); const promise2 = new Promise((resolve, reject) => { setTimeout(resolve, 2 , 'Promise Two'); }); const promise3 = 3; console.log("Running Promise.allSettled method on all the three promise values") Promise.allSettled([promise1, promise2, promise3]).then((values) => console.log(values));
解释
步骤 1 - 定义三个 Promise 值,分别命名为 promise1、promise2、promise3,并为它们添加值。
步骤 2 - 对所有 Promise 值运行 Promise.allSettled() 方法。
步骤 3 - 显示 Promise 值作为结果。
广告