ES6 Promise是一種異步編程的解決方案,用于處理異步操作的結果。其用法如下:
new Promise()
來創建一個Promise對象。其接受一個執行器函數作為參數,該函數包含兩個參數:resolve和reject,分別表示異步操作成功和失敗的回調函數。const myPromise = new Promise((resolve, reject) => {
// 異步操作
});
.then()
來注冊成功的回調函數,使用.catch()
來注冊失敗的回調函數。也可以鏈式調用多個.then()
來處理多個異步操作的結果。myPromise
.then((result) => {
// 處理成功的結果
})
.catch((error) => {
// 處理失敗的結果
});
resolve()
函數將結果傳遞給成功的回調函數。在異步操作失敗時,可以調用reject()
函數將錯誤傳遞給失敗的回調函數。const myPromise = new Promise((resolve, reject) => {
// 異步操作成功
resolve(result);
// 或者異步操作失敗
reject(error);
});
Promise.all()
方法來處理多個Promise對象,當所有Promise對象都成功時,返回一個包含所有結果的數組;當有任意一個Promise對象失敗時,返回一個包含失敗原因的Promise對象。const promise1 = new Promise((resolve, reject) => {
// 異步操作
});
const promise2 = new Promise((resolve, reject) => {
// 異步操作
});
Promise.all([promise1, promise2])
.then((results) => {
// 處理所有Promise對象成功的結果
})
.catch((error) => {
// 處理至少有一個Promise對象失敗的情況
});
Promise.resolve()
、Promise.reject()
、Promise.race()
等,用于處理特定的異步操作場景。總之,ES6 Promise提供了一種更優雅、簡潔的處理異步操作的方式,可以有效避免回調地獄的問題,提高代碼的可讀性和可維護性。