Angular RxJSとは

RxJSとは


RxJSとは、リアクティブプログラミングを行うJSのライブラリのこと。RxJSは難しいが理解すれば複雑なデータ処理を簡単に書くことができる。

リアクティブプログラミングとは、通知されてくるデータを受け取るたびに関連したプログラムが反応し(リアクション)して、処理を行うようにするプログラミングのこと。リアクティブプログラミングのおかげで非同期処理を直感的に考えることができる。

例)

this.A ← Aに対してb,c,d連続して処理を行う
    .b
    .c
    .d





Observableとは


Observableは一本の川と考えるといい。川にユーザーが何かを流したりすることができる。例えば、ユーザーが川にゴミを流して、そのゴミを取り除くみたいな処理を書くこともできる。

で、この処理のことをOperatorという。例えば、distinctUntilChangedメソッドは前の値と違う場合にのみストリームを流すというもの。

そして、この川の下流で取りきれなかったゴミなどを受け取ることもできる。これはSubscribeメソッドtoPromise実行後のthenでデータ(例で言えばゴミ)を受け取ることもできる。

Observableをテンプレート形式で展開するための仕組みがasyncパイプという機能。asyncパイプを使うことでSubscribeメソッドを使って明示的に実行しなくても使うことができる。asyncパイプを使えばコンポーネントの記述量が少なくなる。





Subjectとは


Subjectとは、任意のタイミングでObservable(ストリーム•川)を流すことができるクラス。

SubjectObservableを継承している。angularではObservableよりSubjectを使う方が多い。





See Also