Skip to content

オペレーターの理解

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

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

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

カテゴリ一覧

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

オペレーターの一覧表

各オペレーターの詳細な説明は、リンクをクリックして参照してください。

Operatorのカテゴリ一覧
カテゴリ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メインストリームに他の最新値を付加する
mergeAllHigher-order Observableを並行に平坦化する
concatAllHigher-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オブジェクトに変換する
dematerializeNotificationオブジェクトを通常の通知に戻す
observeOn値の発行タイミングをスケジューラーで制御する
subscribeOn購読開始タイミングをスケジューラーで制御する
timestamp各値にタイムスタンプを付与する
条件defaultIfEmpty値がない場合デフォルト値を発行する
everyすべての値が条件を満たすか判定する
isEmpty値が発行されなかったか判定する
エラーハンドリングcatchErrorエラーを捕捉してフォールバック処理を実行する
retryエラー時に指定回数まで再試行する
retryWhenカスタム条件で再試行する
マルチキャストshareObservableを複数の購読者間で共有する
shareReplay最新のN個の値をキャッシュして新規購読者に再生する

Released under the CC-BY-4.0 license.