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 值作为结果。
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP