Promise

  • promise可封裝函式,執行後可取得執行狀態,並回傳被封裝函式的結果。

  • 通過鏈式調用,可依序執行函式,簡化多層的callback帶來的複雜性。

  • Promise處理的事項多半來自外部,所以會藉由回傳結果來進行下一步的動作。

  • 在ES6 Promise標準中,實作內容只有一個建構函式與一個then方法、一個catch方法,再加上四個必需以Promise關鍵字呼叫的API,Promise.resolve、Promise.reject、Promise.all、Promise.race。

  • Promise物件最後的結果要不然就用一個回傳值來fulfilled(實現),要不然就用一個理由(錯誤)來rejected(拒絕)。

fetch使用Promise架構,只有在網路連線發生問題才會轉為rejected(拒絕)狀態,只要是伺服器有回應都算已實現狀態。

  • promise物件必定是以下三種狀態中的其中一種: pending(等待中)、fulfilled(已實現)或rejected(已拒絕)。

  • Promise.all() 等待多個 Promise 完成

Last updated

Was this helpful?