オペレーターの理解
RxJSのオペレーターは、Observableのデータストリームを変換・合成・制御するための関数群です。
オペレーターは通常、複数を組み合わせて使用することが多く、その際に登場するのが「パイプライン」です。
RxJSでは、オペレーターは以下のカテゴリに分類されます。
カテゴリ一覧
それぞれのカテゴリに、多数の便利なオペレーターが含まれています。
詳細は各カテゴリを参照してください。
オペレーターの一覧表
カテゴリ | サブカテゴリ | Operators | 説明 |
---|---|---|---|
変換 | 単純な値の変換 | map , pluck, mapTo | 各値を変換または抽出 |
累積処理 | scan | 値を蓄積しながら出力 | |
非同期変換 | mergeMap, switchMap, concatMap, exhaustMap | 非同期処理を展開・制御 | |
バッチ処理 | bufferTime, bufferCount, windowTime | 一定時間・個数でまとめる | |
ファイルタリング | 条件による選別 | filter, take, first, last | 条件に応じて値を選別 |
時間による間引き | debounceTime, throttleTime | 一定時間の間隔で発行 | |
重複の除去 | distinctUntilChanged, distinctUntilKeyChanged | 重複する値の発行を防ぐ | |
結合 | ストリームの順次結合 | concat, merge | 複数のObservableを順番または同時に結合 |
最新値の合成 | combineLatest, withLatestFrom | 複数の最新値を組み合わせる | |
完了を待つ/競争 | zip, forkJoin, race | すべて/最初の完了に反応 | |
ユーティリティ | 副作用・監視 | tap, finalize | ログ出力や後処理などの副作用 |
タイミング制御 | delay, timeout, takeUntil | 一定時間の遅延や終了制御 | |
リトライ・繰り返し | retry, repeat | 失敗時の再試行や繰り返し | |
初期値・配列化 | startWith, toArray | 初期値の設定やすべてを配列にまとめる | |
条件 | 条件分岐 | iif, defer | 条件により異なるObservableを生成 |
存在チェック | defaultIfEmpty, every, isEmpty | 値の有無や全件判定など | |
マルチキャスト | 共有化 | share , publish など | Observableのストリームを複数購読者間で共有 |