[JS] Promise Then-Catch-Throw 簡易筆記
Simple Use
如果要極簡單記錄最單純的使用方法的話:(catch
, then
and throw
)
-
有回傳值的話,就會找到下一個
then
-
有
throw
的話,就會找到下一個catch
所以不論在哪裡,想要到下一個 then
的話,就 return
,想要到下一個 catch
的話,就用 throw
。
當然中間被跳過的就回不去了,然後通常最尾巴會放一個 catch
收尾,以免有些 error
沒被抓到)
以下是規定,有時間再補上詳細解釋:
then必須回傳一個promise。 promise2 = promise1.then(onFulfilled, onRejected);
2.2.7.1 當不論是onFulfilled或onRejected其中有一個是有回傳值x,執行Promise解析程序[Resolve]
2.2.7.2 當不論是onFulfilled或onRejected其一丟出例外e,promise2必須用e作為理由而拒絕(rejected)
2.2.7.3 當onFulfilled不是一個函式,而且promise1是fulfilled(已實現)時,promise2必須使用與promise1同樣的值被fulfilled(實現)
2.2.7.4 當onRejected不是一個函式,而且promise1是rejected(已拒絕)時,promise2必須使用與promise1同樣的理由被rejected(拒絕)M