変換オペレーター
変換オペレーターは、RxJSのパイプライン内でデータを変形・加工するために使用されます。
値を新しい形に変換することで、リアクティブなデータフローをより柔軟かつ強力に制御できるようになります。
演算子一覧
◾ 単純な値の変換
| オペレーター | 説明 |
|---|---|
| map | 各値に変換関数を適用 |
◾ 累積処理
| オペレーター | 説明 |
|---|---|
| scan | 累積的に値を生成 |
| reduce | 最終的な累積結果のみを出力 |
◾ ペア・グループ化処理
| オペレーター | 説明 |
|---|---|
| pairwise | 連続する2つの値をペアで処理 |
| groupBy | キーに基づいて値をグループ化 |
◾ 非同期変換
| オペレーター | 説明 |
|---|---|
| mergeMap | 各値をObservableに変換し、並列で結合 |
| switchMap | 最新のObservableに切り替え |
| concatMap | 各Observableを順番に実行 |
| exhaustMap | 実行中は新しい入力を無視 |
| expand | 結果を再帰的に展開 |
◾ バッチ処理
| オペレーター | 説明 |
|---|---|
| buffer | 別のObservableのタイミングで値をまとめる |
| bufferTime | 一定時間ごとに値をまとめる |
| bufferCount | 指定個数ごとにまとめる |
| bufferWhen | 終了条件を動的に制御してバッファリング |
| bufferToggle | 開始と終了を独立制御してバッファリング |
| windowTime | 一定時間ごとにサブObservableに分割 |
実用的な変換パターン
現実のアプリケーションでは、変換オペレーターを組み合わせることで 次のような処理が可能になります。
- 入力バリデーションとフィードバック
- 非同期APIリクエストの最適制御
- データの整形・集約・正規化
- イベントストリームのバッチ処理やグループ化
👉 詳しくは:実用的な変換パターン を参照してください。
🚨 注意点
変換オペレーターを使う際の一般的な間違いを避けるため、以下も参照してください。
- mapでの副作用 -
mapは純粋関数として使用 - 不適切なオペレーター選択 - 高階オペレーターの適切な使い分け