RXといえば仮面ライダーRXが真っ先に思い浮かびあがるが最近はRxJSなるものが来ているらしいのでちょっと勉強
まずは下記に目を通した
https://github.com/Reactive-Extensions/RxJS
http://qiita.com/erukiti/items/6a82dfd3506e9773d592
http://liginc.co.jp/web/js/151272
RxJSのよいとこは
非同期処理におけるイベントドリブン型の処理を用意に扱えて、エラーハンドリングも行いやすい
といったところか
promiseとの違いは
自分は普段はbluebirdをつかってpromiseを使っているがそことの違いはなんだろうか
callback地獄からの脱却という点ではどちらも同じ方向性のようにみえる
rxは特定のイベントからの処理を扱うという点においてはobserverの作成とfilter等のoperatorはイベントドリブンな処理を書くのは便利そう
自前でpromise作ってthenでfilterすれば同様のことができるがrxのほうがシンプルか
RxJSにはpromiseからの変換もある
http://qiita.com/bouzuya/items/09c43e2f3e502a025bf6
bluebirdでベンチマークがあった
memory使用量みるとrxのほうがかなりでかそう。。。
http://bluebirdjs.com/docs/benchmarks.html
競合のライブラリ
bacon.jsとkefir.jsというものがあるようだ
下記でまとまったいたので参考にする
http://qiita.com/kondei/items/17e5d4867a0652911e52
es7ではstreamの採用の流れがあるようなのでstreamを理解しておいたほうがよいか
早いは正義ということで次はkefir.jsを調べてみる
v3がでているので上記サイトで調査されたときよりは安定してそう
react.js絡み
react.js+refluxでのwebサービス開発していたときにaction/storeが冗長的に感じていた。fluxからRxJS/bacon.jsを使った流れにシフトしていったほうが時代の流れか。てか今ならreduxを使いredux-rxとかか
http://qiita.com/kitfactory/items/6da4dc89822dc59dc389
参考
RxJSから始まっていろいろみていたら下記の内容が非常によくまとめられていてとても参考になった
http://qiita.com/masakielastic/items/e769f111932e9061ffd4