RXJSを用いた非同期
概要
どんな方法
- ストリーム(川によく例える川には魚やごみがながれるからデータをそれらにたとえるみたい)とその観測者間でデータをやりとりする方法
- イベント処理、非同期プログラミングに使える手法
- 観測型フロー
- 登場人物は、ほかにObservableという大きな川のようなインターフェースがある
- サブスクライブメソッドを呼ぶことで、非同期処理などを観測開始
- サブスクライブメソッドに観測者を渡す
例え話
寿司屋の場合
- 寿司をつくって流す
- お寿司が回るレーンがObservable(寿司が流れるストリーム)
- お寿司ストリーム上のオブジェクト
- 寿司をとる行為がnext(観測者はnextしまくるわけ)
- 軍艦とかにぎりとかがfilterでいいかな(オペレータメソッドとよぶ)
- 醤油をつける行為がmap(オペレータメソッドとよぶ)
サンプルコード
// ストリームに流れる値
const myObservable = of(えび, 軍艦, たまご);
// 観測者の作成、nextは個々の値が提供されたときのハンドラー
const myObserver = {
next: x => console.log('Observer got a next value: ' + x),
error: err => console.error('Observer got an error: ' + err),
complete: () => console.log('Observer got a complete notification'),
};
// サブスクライブ(購読開始)
myObservable.subscribe(myObserver);