JavaScript Promise.all()方法与Promise.allSettled()方法有什么区别
在这篇文章中,你将了解Promise.all()方法与JavaScript中的Promise.allSettled()方法有什么不同。
Promise.all()方法接收一个或多个承诺作为输入,并返回一个单一的Promise。这个返回的承诺在所有输入的承诺得到满足时才会实现。当输入的任何一个承诺被拒绝时,它就会拒绝一个承诺,并给出第一个拒绝理由。
Promise.allSettled()方法接收一个或多个承诺作为输入并返回一个承诺。这个返回的承诺在所有输入的承诺结算时实现(包括传递一个空的迭代器时),有一个描述每个承诺结果的对象数组。
例子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.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步 -定义 三个承诺值,即promise1、promise2、promise3,并向它们添加值。
-
第 2步 – 对所有的承诺值 运行 Promise.allSettled()方法。
-
第 3步 -将 承诺值 显示 为结果。