ECMAScript 的 Promise 對象是一種用于處理異步操作的高級編程模式。Promise 對象表示一個異步操作的最終結果,它可以是成功(resolved)、失?。╮ejected)或者尚未完成(pending)。Promise 提供了 .then()
、.catch()
和 .finally()
方法來處理異步操作的結果。
Promise 的工作原理如下:
resolve
和 reject
。這兩個參數是函數,用于改變 Promise 的狀態。const promise = new Promise((resolve, reject) => {
// 異步操作
});
resolve
函數將 Promise 狀態改為成功,并傳遞結果值。如果操作失敗,調用 reject
函數將 Promise 狀態改為失敗,并傳遞錯誤信息。const promise = new Promise((resolve, reject) => {
setTimeout(() => {
const success = true;
if (success) {
resolve('操作成功');
} else {
reject('操作失敗');
}
}, 1000);
});
.then()
方法處理成功的結果,使用 .catch()
方法處理失敗的結果。.then()
和 .catch()
方法都返回一個新的 Promise 對象,這使得可以將多個異步操作串聯起來。promise
.then((result) => {
console.log(result); // 輸出 "操作成功"
return '新的結果';
})
.then((newResult) => {
console.log(newResult); // 輸出 "新的結果"
})
.catch((error) => {
console.error(error);
});
.finally()
方法在 Promise 完成(無論成功還是失?。┖髨绦幸恍┎僮?,例如清理資源。promise
.then((result) => {
console.log(result);
})
.catch((error) => {
console.error(error);
})
.finally(() => {
console.log('Promise 完成');
});
通過這種方式,Promise 對象可以讓你更方便地處理異步操作,避免回調地獄(callback hell),并提高代碼的可讀性和可維護性。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。