public void Request(long n) { if (n < 1) { ReactiveStreamsCompliance.RejectDueToNonPositiveDemand(_subscriber); } if (!_done) { _done = true; _promise.Task.ContinueWith(t => { if (!_promise.Task.Result.IsDefaultForType()) { ReactiveStreamsCompliance.TryOnNext(_subscriber, _promise.Task.Result); ReactiveStreamsCompliance.TryOnComplete(_subscriber); } else { ReactiveStreamsCompliance.TryOnComplete(_subscriber); } }, TaskContinuationOptions.OnlyOnRanToCompletion); } }
public void Dispatch(TIn element) => ReactiveStreamsCompliance.TryOnNext(Subscriber, element);
public void EnqueueOutputElement(object element) { ReactiveStreamsCompliance.RequireNonNullElement(element); DownstreamDemand--; ReactiveStreamsCompliance.TryOnNext(Subscriber, element); }