JavaScript Promise.all()方法与Promise.allSettled()方法有什么区别

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步 -将 承诺值 显示 为结果。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

JavaScript 教程