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