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 完成或被拒絕時調用。 |