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); } }