JavaScriptのPromiseを使った実装をコードレビューしていたのだけど、やってみたら自分があんまりPromiseについて理解できていなかったことに気づいた。特にこれまでjQueryのajaxやjQuery Deferredをなんとなく使っていたのだが、Promiseの根本的な概念がjQueryの巨大な仕様の中に埋もれていて、自分の中でjQueryの機能とPromiseの概念を分離して正しく言語化出来ていなかった。
そこでPromiseの根本的な概念を再学習したので、何を参考に勉強したかを書いておく。
PromiseについてはとにかくJavaScript Promiseの本を読めば大体把握できる。このドキュメントを読めば
- Promiseの概念
- ES6 Promiseの利用方法
- Deferredとの関係性
などといったことを知ることができる。
個人的には次の部分が特に参考になった。
- thenでもrejectする
- thenに渡すcallbackで返す値がPromiseの時にどうなるか説明されている
- DeferredとPromise
- DeferredとPromiseの関係性が説明されている
- Deferredの簡易実装が紹介されているので非常に理解しやすい
これを読んだ後、爆速でわかるjQuery.Deferred超入門 - Yahoo! JAPAN Tech Blogを読みなおした。これを読むときは、先ほどのドキュメントで学んだPromiseの根本的な概念とjQueryのDeferredの機能との対応を意識しておくと、理解しやすかった。
大体この二つのドキュメントを読んだらPromiseについて再学習することが出来た。さらに学びたければ自分でPromiseの簡易実装をしてみると良いかもしれない。