[js]Promiseについて学ぶ
昨日の ES6(ES2015)の基本文法を学ぶの続きで、今回はPromiseについて学びました。
Promise本こと『 JavaScript Promiseの本』を読んで学んだのですがとても分かりやすかったです。
以下はざざっと読んだメモ。
「jsでの非同期処理といえばcallback」となっていたが、callback記法はあくまでコーディングルール
Promiseの登場により、非同期に対するオブジェクトとルールを仕様化し、統一的なインターフェースで書けるようになった
PromiseはEvent等とは違い、.thenで登録した関数が呼ばれるのは1回限りということが明確になっている
Promiseは常に非同期で処理されるという事が仕様で定められている
promise chainでの値渡しはメソッド内でreturnした値が渡される
thenは常に新しいpromiseオブジェクトを返す
Promise.allは渡した全てのpromiseがFulFilledまたはRejectedになるまで次の処理を待つ
Promise.raceはどれか一つでもpromiseがFulFilledまたはRejectedになったら次の処理を実行
DeferredはPromiseと違い、共通の仕様があるわけではなく、各ライブラリがそのような目的の実装をそう呼んでいる
DeferredとPromiseは比べるような関係ではなく、DeferredがPromiseを内蔵しているような関係になっている
最後の方はかなり流し読みになってしまったのですが「あとは実践あるのみ」ということで、以前作ったcallbackだらけのAPIをPromiseにうまく置き換えていきたいと思います。