public void OnError(Exception error) { try { promise.TrySetException(error); } finally { registration.Dispose(); disposable.Dispose(); } }
public static UniTask <T> FromCanceled <T>(CancellationToken token) { var promise = new UniTaskCompletionSource <T>(); promise.TrySetException(new OperationCanceledException(token)); return(new UniTask <T>(promise)); }
public static UniTask <T> FromException <T>(Exception ex) { var promise = new UniTaskCompletionSource <T>(); promise.TrySetException(ex); return(new UniTask <T>(promise)); }
public static UniTask FromException(Exception ex) { var promise = new UniTaskCompletionSource <AsyncUnit>(); promise.TrySetException(ex); return(new UniTask(promise)); }
public static UniTask FromCanceled(CancellationToken token) { var promise = new UniTaskCompletionSource<AsyncUnit>(); promise.TrySetException(new OperationCanceledException(token)); promise.MarkHandled(); return new UniTask(promise); }
public static UniTask <T> ToUniTask <T>(this IObservable <T> source, CancellationToken cancellationToken = default(CancellationToken), bool useFirstValue = false) { var promise = new UniTaskCompletionSource <T>(); var disposable = new SingleAssignmentDisposable(); var observer = useFirstValue ? (IObserver <T>) new FirstValueToUniTaskObserver <T>(promise, disposable, cancellationToken) : (IObserver <T>) new ToUniTaskObserver <T>(promise, disposable, cancellationToken); try { disposable.Disposable = source.Subscribe(observer); } catch (Exception ex) { promise.TrySetException(ex); } return(promise.Task); }