Class AsyncSubject<T>
A Subject<T> that only emits its last nexted value, and only upon completion. If it errors
instead, no value is ever emitted to any subscriber, regardless of what was nexted beforehand. Mirrors rxjs's
AsyncSubject.
public sealed class AsyncSubject<T> : Subject<T>, IObserver<T>, IDisposable
Type Parameters
TThe type of values pushed through the subject.
- Inheritance
-
System.ObjectSubject<T>AsyncSubject<T>
- Implements
-
IObserver<T>IDisposable
- Inherited Members
Methods
OnCompleted()
Terminates the subject: forwards the last buffered value (if any), then completion, to every current and future subscriber. A no-op if already completed.
public override void OnCompleted()
OnNext(T)
Buffers value as the current "last value" candidate. Never forwarded to subscribers directly -- only OnCompleted() does that.
public override void OnNext(T value)
Parameters
valueTThe value to buffer.
Subscribe(IObserver<T>)
Subscribes observer. If the subject already completed, immediately replays its last
buffered value (if any) followed by completion; if it already errored, immediately delivers that error
(via the base Subscribe(IObserver<T>) behavior); otherwise registers normally.
public override IDisposable Subscribe(IObserver<T> observer)
Parameters
observerIObserver<T>The observer to subscribe.
Returns
- IDisposable
A disposable that unsubscribes
observer, or Empty if the subject had already terminated.