Skip to content

オペレーターの理解

RxJSのオペレーターは、Observableのデータストリームを変換・合成・制御するための関数群です。

オペレーターは通常、複数を組み合わせて使用することが多く、その際に登場するのが「パイプライン」です。

RxJSでは、オペレーターは以下のカテゴリに分類されます。

カテゴリ一覧

それぞれのカテゴリに、多数の便利なオペレーターが含まれています。
詳細は各カテゴリを参照してください。

オペレーターの一覧表

Operatorのカテゴリ一覧
カテゴリサブカテゴリ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のストリームを複数購読者間で共有

Released under the CC-BY-4.0 license.