您好,登錄后才能下訂單哦!
Promise的核心價值是創建一個異步執行的過程,并給你善后的機會。
Promise對象一但創建就會立即執行,執行過程是異步的,不會對后續的邏輯造成阻塞。
直接聲明,立即執行
let promise = new Promise ( (resolve, reject) => {
//執行耗時的邏輯。。。
if ( success ) {
resolve(a) // pending ——> resolved 參數將傳遞給對應的回調方法
} else {
reject(err) // pending ——> rejectd
}
} )
//后續代碼會繼續執行,而不是等待Promise內部邏輯執行完畢。
//...
放到函數里,需要時執行
function promise () {
return new Promise ( function (resolve, reject) {
//執行耗時的邏輯。。。
if ( success ) {
resolve(a)
} else {
reject(err)
}
} )
}
Promise內邏輯執行完畢后,調用resolve還是reject,完全要看編程者的意圖。調用resolve就會觸發Promise的then,調用reject就會觸發Promise的catch。
這就是設計的價值之處,執行完畢一個耗時操作后,給你一個條件回調的機會用于執行后續邏輯。
promise.then(
() => { console.log('this is success callback') }
).catch(
(err) => { console.log(err) }
)
then() 和 catch() 都會返回一個新的Promise對象,可以鏈式調用。
promise.then(
() => { console.log('this is success callback') }
).catch(
(err) => { console.log(err) }
).then(
...
).catch(
...
)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。