Chapter.1 - Promiseとは何か
- E言語で発見された
- 並列/並行処理の言語デザインの一種
- コールバックでエラーを返して、
if (error) {}
するのとの違い- あくまでコーディングルール
- Promise は
then
とcatch
しか使えない- 統一される
- 非同期処理をうまくパターン化する
- 統一される
- Promise は
- あくまでコーディングルール
2. Chapter.2 - Promiseの書き方
- Promiseのショートカット
- テストコードに使える
Promise.resolve
Promise.reject
- テストコードに使える
-
thenable
なオブジェクト-
.then
を持っている- Array like みたいなもの
-
jQuery.ajax()
の返り値-
Promise.resolve
でpromiseオブジェクトにできる
-
-
- Promise#finally
- 引数を受け取らない
- どんな引数を返しても影響なし
- isLoadingで使う
- 引数を受け取らない
- thenは常に新しいpromiseオブジェクトを返す
- Promise.all
- promiseをまとめる
- 全て並列に実行される
- promiseをまとめる
- Promise.race
- 最初にFulfilledになった時点でthenが呼ばれる
- 他のpromiseはキャンセルされない
- 最初にFulfilledになった時点でthenが呼ばれる
4. Chapter.4 - Advanced
- throw でなく reject する
- throw が意図したものか例外なのかわからない
Chapter.5 - Async Function
- Async Function
- 必ず
Promise
インスタンスを返す-
Promise.resolve(返り値)
を返す
-
-
await
が使える- 外の処理は止まらない
- 必ず
-
await
式- 右辺の
Promise
インスタンスがFullfilledかRejectedになるまで待つ
- 右辺の
- Async Functionと配列
-
for
を使う- 順番が重要でなければ
Promise.all
を使う
- 順番が重要でなければ
-
forEach
は使えない-
await
はAsync Function
の直下でしか使えないから- コールバックにするとどうか?
- 外側の処理が先に進んでしまう
- コールバックにするとどうか?
-
-