📝 async/await/observableのECMAScript近況のノートついでに
追記: これは2015年7月ごろの近況です
https://github.com/jhusain/asyncgenerator はObservableに書いてたプロポーサルだったけどこっちはoutdatedになった。
- Observableは https://github.com/zenparsing/es-observable になった
- async/awaitは https://github.com/tc39/ecmascript-asyncawait こっち
追記: async/await勘違いしてて、元々別のプロポーサルだった
async/awaitは https://github.com/tc39/ecma262 によるとStage 1なので、 ちょっとECMAScriptに入るって感じがでてきた。
Rx から来てるObservableも分解されてて、
Observable
というクラスについてのプロポーサル- https://github.com/zenparsing/es-observable
subscribe
というメソッドのみについて規定してるものに分けた感じ(Promiseでいうところのthenable)- https://github.com/jhusain/observable-spec
es-observableの方が仕様へ提案する本命という感じで、observable-specはとりあえず、
こういう動作をする subscribe
というメソッドを持っていればそれはobservableだよねって事を書いてる感じ。
(公式のプロポーサルというよりは、Promise/A+をまねて then
というメソッドついてだけ決めて素早く決めよう的な感じがする)
どっちもGeneratorがベースになってる。
最近TC39ミーティングでも話されてる
RxJS Nextという感じでやってる https://github.com/ReactiveX/RxJS も es-observableのプロポーサル参照してるので、こっちに合わせていく感じっぽい流れ?
(ReactiveXとReactive-ExtensionsのOrganizationの違いが良くわからない… 誰か教えて!!)
ReactiveXはNetflix流派、Reactive-ExtensionsはMS流派(本家)という事らしい。
後、Angular2はこのobservable-specを参照しているのも気になる。(これと動きがでてきたの関連ありそうな気がする)
Composition Functionについてのプロポーサルも一応関係有る気がするけど、こっちは放置されてそう。
JavaScriptで Observableや川の流れを見てる人は
- https://github.com/zenparsing/es-observable
- https://github.com/ReactiveX/RxJS
を追っておいて下さい 🙇
async/awaitは https://github.com/tc39/ecma262 によるとStage 1
Stage 3 だと思います。
https://tc39.github.io/ecmascript-asyncawait/