Promise在JavaScript中是一種用于處理異步操作的對象。它可以讓你更加靈活地處理異步操作,避免回調(diào)地獄的情況。
Promise有三種狀態(tài):pending(進行中)、fulfilled(已成功)和rejected(已失?。.?dāng)Promise處于pending狀態(tài)時,可以通過調(diào)用resolve()方法將其狀態(tài)改為fulfilled,也可以通過調(diào)用reject()方法將其狀態(tài)改為rejected。
下面是Promise的一個簡單示例:
let promise = new Promise((resolve, reject) => {
setTimeout(() => {
let random = Math.random();
if (random > 0.5) {
resolve('Success!');
} else {
reject('Error!');
}
}, 2000);
});
promise.then((result) => {
console.log(result); // 輸出 'Success!' 或 'Error!'
}).catch((error) => {
console.log(error);
});
在這個示例中,我們創(chuàng)建了一個Promise對象,通過setTimeout模擬了一個異步操作。如果隨機數(shù)大于0.5,則調(diào)用resolve()方法,否則調(diào)用reject()方法。然后我們使用then()方法來處理Promise對象的結(jié)果,使用catch()方法來處理Promise對象的錯誤。
Promise的應(yīng)用場景包括但不限于:異步網(wǎng)絡(luò)請求、文件讀寫、定時器等等。通過Promise,我們可以更加優(yōu)雅地處理異步操作,避免回調(diào)地獄,讓代碼更加清晰易讀。