Never
1. 概要
Never は、値を一切発行せず、完了もエラーも発生しない Observable を生成するファクトリメソッドです。購読すると無期限に待機し続けます。
テストでタイムアウトの検証を行う場合や、合成オペレーターでの無限ストリームのプレースホルダーとして使用します。
2. シグネチャ
基本
csharp
public static Observable<T> Never<T>()値を発行せず、完了もしない Observable を返します。
csharp
Observable.Never<int>()3. マーブルダイアグラム
Never は購読後、何も発行せず、完了もエラーも発生しません。タイムラインは無限に続きます。
4. サンプルコード
csharp
using R3;
// 完了しない Observable
Observable.Never<int>()
.Subscribe(
x => Console.WriteLine($"値: {x}"), // 呼ばれない
r => Console.WriteLine($"完了: {r}")); // 呼ばれない
// 何も出力されず、購読は無期限に継続する
// Race と組み合わせてタイムアウトをテスト
var timeout = Observable.Timer(TimeSpan.FromSeconds(5), TimeProvider.System)
.Select(_ => "タイムアウト");
var neverSource = Observable.Never<string>();
Observable.Race(neverSource, timeout)
.Subscribe(x => Console.WriteLine(x));
// 出力(5 秒後): タイムアウト