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