Skip to content

オペレーター

R3 のオペレーターは、Observable<T> のデータフローを加工・制御するための拡張メソッド群です。上流から流れてきた値を変換、フィルタリング、結合、分割し、下流へ届けます。

カテゴリ一覧

変換

上流の値を別の値や形へ変換するオペレーター。SelectSelectManyScan など。

フィルタリング

上流の値のうち条件に合うものだけを通す、または一部だけを取り出すオペレーター。WhereDistinctTakeSkip など。

結合

複数の Observable を組み合わせる、合流する、順序づけるオペレーター。CombineLatestMergeZipSwitch など。

分割・バッファリング

上流の値を配列やまとまりにする、または隣接値を組にするオペレーター。ChunkChunkFramePairwise など。

時間・フレーム制御

時間、フレーム、発行間隔、遅延、タイムアウトに関わるオペレーター。DebounceThrottleFirstDelayTimeout など。

エラー処理

エラー通知や OnErrorResume の扱いを変えるオペレーター。CatchIgnoreOnErrorResumeOnErrorResumeAsFailure

集約・Task 変換

Observable シーケンスを購読して処理し、その結果を Task、コレクション、単一値などとして取得する処理。FirstAsyncToArrayAsyncAggregateAsync など。

購読・共有・スレッド制御

購読タイミング、通知先、共有、同期、ConnectableObservable に関わるオペレーター。SharePublishObserveOn など。

Unity

R3.Unity が提供する Unity メインスレッド、GameObject ライフサイクル、UI 反映に関わる API。ObserveOnMainThreadAddToSubscribeToText など。

デバッグ・副作用

値を変えずに副作用を挟む、または購読中の観測を助けるオペレーター。DoIndexAppendPrepend など。

用途別の選び方

やりたいこと代表オペレーター
値を別の型に変換したいSelectCast
条件に合う値だけ流したいWhereDistinctUntilChanged
最初の N 件だけ欲しいTake
最後の N 件だけ欲しいTakeLast
複数の Observable を合成したいCombineLatestMergeZip
値をまとめて配列で受け取りたいChunkChunkFrame
連打を抑制したいThrottleFirstDebounce
エラー時に別の Observable へ切り替えたいCatch
結果を1つの値として待ちたいFirstAsyncToArrayAsync
複数の購読者で値を共有したいSharePublish
デバッグ用にログを挟みたいDo
Unity のメインスレッドや GameObject の寿命に連動させたいObserveOnMainThreadAddTo