オペレーターの理解 
RxJSのオペレーターは、Observableのデータストリームを変換・合成・制御するための関数群です。
オペレーターは通常、複数を組み合わせて使用することが多く、その際に登場するのが「パイプライン」です。
RxJSでは、オペレーターは以下のカテゴリに分類されます。
カテゴリ一覧 
それぞれのカテゴリに、多数の便利なオペレーターが含まれています。
 詳細は各カテゴリを参照してください。
オペレーターの一覧表 
各オペレーターの詳細な説明は、リンクをクリックして参照してください。
| カテゴリ | Operator | 説明 | 
|---|---|---|
| 変換 | map | 各値を変換する | 
| scan | 値を蓄積しながら途中経過も出力する | |
| reduce | すべての値を蓄積して最終結果のみ出力する | |
| pairwise | 連続する2つの値をペアで処理する | |
| groupBy | キーごとにストリームをグループ化する | |
| mergeMap | 非同期処理を並列実行する | |
| switchMap | 最新の非同期処理のみ実行(古い処理はキャンセル) | |
| concatMap | 非同期処理を順次実行する | |
| exhaustMap | 実行中は新しい処理を無視する | |
| expand | 結果を再帰的に展開する | |
| buffer | 値を配列にまとめて発行する | |
| bufferTime | 指定時間ごとに値をまとめて発行する | |
| bufferCount | 指定個数ごとに値をまとめて発行する | |
| bufferWhen | 終了条件を動的に制御してバッファリング | |
| bufferToggle | 開始と終了を独立制御してバッファリング | |
| フィルタリング | filter | 条件に合致する値のみ通過させる | 
| take | 最初のN個の値のみ取得する | |
| takeLast | 最後のN個の値を取得する | |
| takeWhile | 条件を満たす間値を取得する | |
| skip | 最初のN個の値をスキップする | |
| skipLast | 最後のN個の値をスキップする | |
| skipWhile | 条件を満たす間値をスキップする | |
| skipUntil | 別のObservableが発火するまで値をスキップする | |
| first | 最初の値または条件を満たす最初の値を取得する | |
| last | 最後の値または条件を満たす最後の値を取得する | |
| elementAt | 指定されたインデックスの値を取得する | |
| find | 条件を満たす最初の値を見つける | |
| findIndex | 条件を満たす最初の値のインデックスを取得する | |
| debounceTime | 指定時間入力がない場合に最後の値を発行する | |
| throttleTime | 最初の値を通し、指定時間は新しい値を無視する | |
| auditTime | 指定時間後に最後の値を発行する | |
| audit | カスタムObservableで期間を制御して最後の値を発行する | |
| sampleTime | 指定時間間隔で最新値をサンプリングする | |
| ignoreElements | すべての値を無視して完了/エラーのみ通す | |
| distinct | すべての重複値を除去する(ユニークな値のみ出力) | |
| distinctUntilChanged | 連続した重複値を除去する | |
| distinctUntilKeyChanged | オブジェクトの特定プロパティの変更のみ検出する | |
| 結合(Pipeable) | concatWith | 完了後に他のObservableを順番に結合する | 
| mergeWith | 複数のObservableを同時に結合する | |
| combineLatestWith | 各Observableの最新値を組み合わせる | |
| zipWith | 対応する順番の値をペア化する | |
| raceWith | 最初に発火したObservableのみを採用する | |
| withLatestFrom | メインストリームに他の最新値を付加する | |
| mergeAll | Higher-order Observableを並行に平坦化する | |
| concatAll | Higher-order Observableを順番に平坦化する | |
| switchAll | 最新のHigher-order Observableに切り替える | |
| exhaustAll | 実行中は新しいHigher-order Observableを無視する | |
| combineLatestAll | 全ての内部Observableの最新値を組み合わせる | |
| zipAll | 各内部Observableの対応する値をペア化する | |
| ユーティリティ | tap | 副作用を実行する(ログ出力など) | 
| finalize | 完了またはエラー時に後処理を実行する | |
| delay | すべての値を指定時間遅延させる | |
| delayWhen | 各値を別のObservableで動的に遅延させる | |
| timeout | 指定時間内に値が来ない場合エラーを発行する | |
| takeUntil | 別のObservableが値を発行するまで値を取得する | |
| retry | エラー時に指定回数まで再試行する | |
| repeat | 完了後に指定回数繰り返す | |
| startWith | ストリームの最初に初期値を追加する | |
| toArray | すべての値を配列にまとめて発行する | |
| materialize | 通知をNotificationオブジェクトに変換する | |
| dematerialize | Notificationオブジェクトを通常の通知に戻す | |
| observeOn | 値の発行タイミングをスケジューラーで制御する | |
| subscribeOn | 購読開始タイミングをスケジューラーで制御する | |
| timestamp | 各値にタイムスタンプを付与する | |
| 条件 | defaultIfEmpty | 値がない場合デフォルト値を発行する | 
| every | すべての値が条件を満たすか判定する | |
| isEmpty | 値が発行されなかったか判定する | |
| エラーハンドリング | catchError | エラーを捕捉してフォールバック処理を実行する | 
| retry | エラー時に指定回数まで再試行する | |
| retryWhen | カスタム条件で再試行する | |
| マルチキャスト | share | Observableを複数の購読者間で共有する | 
| shareReplay | 最新のN個の値をキャッシュして新規購読者に再生する |