Promise是JavaScript中用于處理異步操作的對象。它代表了一個異步操作的最終完成(或失?。┘捌浣Y果值。Promise有三種狀態:
你可以使用new Promise()構造函數來創建一個Promise對象。構造函數接受一個函數作為參數,這個函數有兩個參數:resolve和reject。
const myPromise = new Promise((resolve, reject) => {
// 異步操作
setTimeout(() => {
const success = true;
if (success) {
resolve("操作成功!");
} else {
reject("操作失??!");
}
}, 1000);
});
你可以使用.then()方法來處理Promise成功的結果,使用.catch()方法來處理Promise失敗的結果。
myPromise
.then((result) => {
console.log(result); // 輸出: 操作成功!
})
.catch((error) => {
console.error(error); // 輸出: 操作失??!
});
Promise支持鏈式調用,你可以在一個.then()方法中返回一個新的Promise,然后在下一個.then()中處理這個新的Promise的結果。
myPromise
.then((result) => {
console.log(result); // 輸出: 操作成功!
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve("第二個操作成功!");
}, 1000);
});
})
.then((result) => {
console.log(result); // 輸出: 第二個操作成功!
})
.catch((error) => {
console.error(error);
});
你可以使用Promise.all()方法來處理多個Promise,它會等待所有的Promise都完成后再返回結果。
const promise1 = Promise.resolve("第一個Promise");
const promise2 = new Promise((resolve, reject) => {
setTimeout(resolve, 1000, "第二個Promise");
});
const promise3 = new Promise((resolve, reject) => {
setTimeout(resolve, 2000, "第三個Promise");
});
Promise.all([promise1, promise2, promise3])
.then((results) => {
console.log(results); // 輸出: ["第一個Promise", "第二個Promise", "第三個Promise"]
})
.catch((error) => {
console.error(error);
});
你可以使用Promise.race()方法來處理多個Promise,它會返回第一個完成的Promise的結果。
const promise1 = new Promise((resolve, reject) => {
setTimeout(resolve, 500, "第一個Promise");
});
const promise2 = new Promise((resolve, reject) => {
setTimeout(resolve, 1000, "第二個Promise");
});
Promise.race([promise1, promise2])
.then((result) => {
console.log(result); // 輸出: 第一個Promise
})
.catch((error) => {
console.error(error);
});
Promise是JavaScript中處理異步操作的重要工具。通過使用Promise,你可以更優雅地處理異步代碼,避免回調地獄(Callback Hell),并且可以輕松地處理多個異步操作的結果。掌握Promise的使用,對于編寫現代JavaScript代碼至關重要。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。