Promise,ES6中定義的規範,如今都9102年了,你們基本都會用Promise,但對於Promise中then,有沒有精確地認知呢,請往下看。promise
官方文檔是這樣定義的:函數
一個 promise 必須提供一個 then 方法以訪問其當前值、終值和據因。文檔
promise 的 then 方法接受兩個參數:get
promise.then(onFulfilled, onRejected)回調函數
Todo:這裏只介紹onFulfilled。方法
onFulfilled 和 onRejected 都是可選參數。margin
若是 onFulfilled 不是函數,其必須被忽略co
若是 onFulfilled 是函數:回調
當 promise 執行結束後其必須被調用,其第一個參數爲 promise 的終值ps
在 promise 執行結束前其不可被調用
其調用次數不可超過一次
用通(ren)俗(hua)的話來講:
then方法提供一個供自定義的回調函數,若傳入非函數,則會忽略當前then方法。
回調函數中會把上一個then中返回的值當作參數值供當前then方法調用。
then方法執行完畢後須要返回一個新的值給下一個then調用(沒有返回值默認使用undefined)。
每一個then只可能使用前一個then的返回值。
Promise規範:https://promisesaplus.com/