UniRx: Empty
Observable.Empty()
は、Subscribe()
するとすぐに完了を通知します。
using UniRx; using UnityEngine; public class Main : MonoBehaviour { void Start() { var s = Observable.Empty<Unit>(); s.Subscribe(e => Debug.Log("e: " + e), () => Debug.Log("OnCompleted")); } }
実行結果です。
OnCompleted
Observable.Empty を Take する
void Start() { var s = Observable.Empty<Unit>().Take(5); s.Subscribe(e => Debug.Log("e: " + e), () => Debug.Log("OnCompleted")); }
実行結果です。
OnCompleted
Take
するときの不足分に対する挙動は、Linq の Take
と同じですね。
Observable.Empty を Skip する
void Start() { var s = Observable.Empty<Unit>().Skip(5); s.Subscribe(e => Debug.Log("e: " + e), () => Debug.Log("OnCompleted")); }
実行結果です。
OnCompleted
Take
と同様の振る舞いです。
Observable.Empty を First する
void Start() { var s = Observable.Empty<Unit>().First(); s.Subscribe(e => Debug.Log("e: " + e), () => Debug.Log("OnCompleted")); }
実行結果です。
InvalidOperationException: sequence is empty
シーケンスが空のため、InvalidOperationException
例外が生成されました。
Observable.Empty を FirstOrDefault する
void Start() { var s = Observable.Empty<int>().FirstOrDefault(); s.Subscribe(e => Debug.Log("e: " + e), () => Debug.Log("OnCompleted")); }
実行結果です。
e: 0 OnCompleted
default(int)
が通知されます。