public static UniTask <T> WithCancellation <T>(this AsyncOperationHandle <T> handle, CancellationToken cancellationToken) { if (handle.IsDone) { return(UniTask.FromResult(handle.Result)); } return(new UniTask <T>(AsyncOperationHandleWithCancellationSource <T> .Create(handle, cancellationToken, out var token), token)); }
public static UniTask WithCancellation(this AsyncOperationHandle handle, CancellationToken cancellationToken) { if (handle.IsDone) { return(UniTask.CompletedTask); } return(new UniTask(AsyncOperationHandleWithCancellationSource.Create(handle, cancellationToken, out var token), token)); }
public static UniTask <T> WithCancellation <T>(this AsyncOperationHandle <T> handle, CancellationToken cancellationToken) { if (cancellationToken.IsCancellationRequested) { return(UniTask.FromCanceled <T>(cancellationToken)); } if (handle.IsDone) { if (handle.Status == AsyncOperationStatus.Failed) { return(UniTask.FromException <T>(handle.OperationException)); } return(UniTask.FromResult(handle.Result)); } return(new UniTask <T>(AsyncOperationHandleWithCancellationSource <T> .Create(handle, cancellationToken, out var token), token)); }
public static UniTask WithCancellation(this AsyncOperationHandle handle, CancellationToken cancellationToken) { if (cancellationToken.IsCancellationRequested) { return(UniTask.FromCanceled(cancellationToken)); } if (handle.IsDone) { if (handle.Status == AsyncOperationStatus.Failed) { return(UniTask.FromException(handle.OperationException)); } return(UniTask.CompletedTask); } return(new UniTask(AsyncOperationHandleWithCancellationSource.Create(handle, cancellationToken, out var token), token)); }