AngularのRXJS

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);