Promise 已經被ES6及新的瀏覽器支援,是一個強大的異步執行流程語法結構

Promise 可以讓我們確保某件事情做完之後,才進行後續動作

本質上都是使用callback(回呼函式),並且都是async(異步執行)

當我們實際執行一個 promise,他會先將狀態切換為 pending(等待中),並且依照 resolve 或reject 來返回結果

then..catch 連鎖處理

我們可以透過 Promise 來進行 then..catch 連續的連鎖流程處理

Promise.all 方法

promise.all 可以用陣列的方式一次帶入多個promise,

執行到最後會再回傳一個 Promise 物件

有幾點特色:

  • 一項被reject或發生錯誤,就會返回 reject
  • 全部執行都完成 resolve ,才會返回成功resolve
  • 返回的resolve promise順序會跟傳入陣列中的順序一致

promise.race 方法

promise.race 同樣可用陣列的方式一次帶入多個promise,

只要有任何一個值完成,無論是resolve, reject 還是錯誤,都會返回結果

如果傳入的 promise 同時完成,只會返回排陣列在第一位置的 promise 值