- この人が十分すぎる充実度の解説を書いていた。下記は僕の要約と加筆。
Promiseのアイデアの源流は古い
1997年のE言語がほぼ今のPromiseと同じ形のものを作っている
- E (programming language) - Wikipedia 2001年にPythonで実装されたネットワークプログラミングフレームワークのTwistedがE言語を参考にして実装された
- Deferredと呼ばれていた
- Twisted - Wikipedia
2005年にJavaScriptの軽量ライブラリMochiKitがTwistedを参考にして実装された
- 当時XMLHttpRequest - Web APIs | MDNが使われていた、今のfetchに慣れた人からするとすごくめんどくさい
- これを楽にしたいという意図があった
- MochiKit - Wikipedia
Dojo、QなどいくつものJavaScriptライブラリが同様の概念を採用し始める、そして2010年にjQueryが採用する
- Dojo Toolkit - Wikipedia
- Q
- jQueryは少なくとも一時期はとてもメジャーなJavaScriptライブラリだった
- あまり詳しくない人がとりあえず入れて使う的な空気感
- jQueryによって「こういうやり方」が広い範囲のJavaScriptプログラマに広がることになった
統一的なテストケースPromises/A+が生まれ、まちまちだった「こういうやり方」の実装が「同じ振る舞いをするPromiseの実装」となった
- また、このことにより「Promise」という一つの概念が広い範囲で使われていることを客観的に示すことができるようになり、標準化の助けになった
そして2015年にES2015という形で標準化された。