JavaScript Promise 對象

Promise 對象表示異步操作的完成或失敗及其結果。

一個 Promise 可以有以下 3 種狀態:

pending 初始狀態
rejected 操作失敗
fulfilled 操作完成

實例

// 創建一個 Promise 對象
let myPromise = new Promise(function(myResolve, myReject) {
  let result = true;
// 這里放置可能耗時較長的代碼
  if (result == true) {
    myResolve("OK");
  } else {
    myReject("Error");
  }
});
// 使用 then() 顯示結果
myPromise.then(x => myDisplay(x), x => myDisplay(x));

親自試一試

JavaScript Promise 方法和屬性

名稱 描述
Promise.all()

從一組 Promise 返回一個單一的 Promise。

當所有 Promise 都完成時。

Promise.allSettled()

從一組 Promise 返回一個單一的 Promise。

當所有 Promise 都已解決時。

Promise.any()

從一組 Promise 返回一個單一的 Promise。

當任一 Promise 完成時。

Promise.race()

從一組 Promise 返回一個單一的 Promise。

當較快的 Promise 解決時。

Promise.reject() 返回被拒絕并帶有值的 Promise 對象。
Promise.resolve() 返回被解決并帶有值的 Promise 對象。
catch() 提供一個函數,當 Promise 被拒絕時調用。
finally() 提供一個函數,當 Promise 完成或被拒絕時調用。
then() 提供兩個函數,當 Promise 完成或被拒絕時調用。

另請參閱:

教程:JavaScript Promise