hello-world.jp.net
webエンジニアのメモ。とりあえずやってみる。

[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にうまく置き換えていきたいと思います。


Related #es6

ES6(ES2015)の基本文法を学ぶ

以前jaws-frameworkで作成したAPIがあるのですが、 serverlessが登場したので移行を兼ねてES6で書きなおしてみようと思っています。