Show / Hide Table of Contents

Interface IAsyncOperation<TResult>

Represents the consumer side of an asynchronous operation (promise). Extends IAsyncOperation interface with a result value.

Inherited Members
IAsyncOperation.Id
IAsyncOperation.Progress
IAsyncOperation.Status
IAsyncOperation.Exception
IAsyncOperation.IsCompletedSuccessfully
IAsyncOperation.IsFaulted
IAsyncOperation.IsCanceled
IAsyncOperationCallbacks.ProgressChanged
IAsyncOperationCallbacks.Completed
IAsyncOperationCallbacks.AddCompletionCallback(Object, SynchronizationContext)
IAsyncOperationCallbacks.AddProgressCallback(Object, SynchronizationContext)
IAsyncOperationCallbacks.RemoveCallback(Object)
IAsyncCancellable.Cancel()
IAsyncResult.AsyncState
IAsyncResult.AsyncWaitHandle
IAsyncResult.CompletedSynchronously
IAsyncResult.IsCompleted
System.IDisposable.Dispose()
System.IObservable<TResult>.Subscribe(System.IObserver<TResult>)
Namespace: UnityFx.Async
Assembly: UnityFx.Async-netstandard2.0.dll
Syntax
public interface IAsyncOperation<out TResult> : IAsyncOperation, IAsyncOperationCallbacks, IAsyncCancellable, IAsyncResult, IDisposable, IObservable<TResult>
Type Parameters
Name Description
TResult

Type of the operation result value.

Properties

| Improve this Doc View Source

Result

Gets the operation result value.

Declaration
TResult Result { get; }
Property Value
Type Description
TResult

Result of the operation.

Remarks

Once the result of an operation is available, it is stored and is returned immediately on subsequent calls to the Result property. Unlike Tasks accessing the property does not block the calling thread (InvalidOperationException is throws instead). Note that, if an exception occurred during the operation, or if the operation has been cancelled, the Result property does not return a value. Instead, attempting to access the property value throws an exception.

Exceptions
Type Condition
InvalidOperationException

Thrown if the property is accessed before operation is completed.

Extension Methods

AsyncExtensions.ThrowIfNonSuccess(IAsyncOperation)
AsyncExtensions.WithCancellation(IAsyncOperation, CancellationToken)
AsyncExtensions.Wait(IAsyncOperation)
AsyncExtensions.Wait(IAsyncOperation, Int32)
AsyncExtensions.Wait(IAsyncOperation, TimeSpan)
AsyncExtensions.Wait(IAsyncOperation, CancellationToken)
AsyncExtensions.Wait(IAsyncOperation, Int32, CancellationToken)
AsyncExtensions.Wait(IAsyncOperation, TimeSpan, CancellationToken)
AsyncExtensions.Join(IAsyncOperation)
AsyncExtensions.Join(IAsyncOperation, Int32)
AsyncExtensions.Join(IAsyncOperation, TimeSpan)
AsyncExtensions.Join<TResult>(IAsyncOperation<TResult>)
AsyncExtensions.Join<TResult>(IAsyncOperation<TResult>, Int32)
AsyncExtensions.Join<TResult>(IAsyncOperation<TResult>, TimeSpan)
AsyncExtensions.Join(IAsyncOperation, CancellationToken)
AsyncExtensions.Join(IAsyncOperation, Int32, CancellationToken)
AsyncExtensions.Join(IAsyncOperation, TimeSpan, CancellationToken)
AsyncExtensions.Join<TResult>(IAsyncOperation<TResult>, CancellationToken)
AsyncExtensions.Join<TResult>(IAsyncOperation<TResult>, Int32, CancellationToken)
AsyncExtensions.Join<TResult>(IAsyncOperation<TResult>, TimeSpan, CancellationToken)
AsyncExtensions.ContinueWith(IAsyncOperation, Action<IAsyncOperation>)
AsyncExtensions.ContinueWith(IAsyncOperation, Action<IAsyncOperation>, AsyncContinuationOptions)
AsyncExtensions.ContinueWith(IAsyncOperation, Action<IAsyncOperation, Object>, Object)
AsyncExtensions.ContinueWith(IAsyncOperation, Action<IAsyncOperation, Object>, Object, AsyncContinuationOptions)
AsyncExtensions.ContinueWith<TResult>(IAsyncOperation, Func<IAsyncOperation, TResult>)
AsyncExtensions.ContinueWith<TResult>(IAsyncOperation, Func<IAsyncOperation, TResult>, AsyncContinuationOptions)
AsyncExtensions.ContinueWith<TResult>(IAsyncOperation, Func<IAsyncOperation, Object, TResult>, Object)
AsyncExtensions.ContinueWith<TResult>(IAsyncOperation, Func<IAsyncOperation, Object, TResult>, Object, AsyncContinuationOptions)
AsyncExtensions.ContinueWith<TResult>(IAsyncOperation<TResult>, Action<IAsyncOperation<TResult>>)
AsyncExtensions.ContinueWith<TResult>(IAsyncOperation<TResult>, Action<IAsyncOperation<TResult>>, AsyncContinuationOptions)
AsyncExtensions.ContinueWith<TResult>(IAsyncOperation<TResult>, Action<IAsyncOperation<TResult>, Object>, Object)
AsyncExtensions.ContinueWith<TResult>(IAsyncOperation<TResult>, Action<IAsyncOperation<TResult>, Object>, Object, AsyncContinuationOptions)
AsyncExtensions.ContinueWith<TResult, TNewResult>(IAsyncOperation<TResult>, Func<IAsyncOperation<TResult>, TNewResult>)
AsyncExtensions.ContinueWith<TResult, TNewResult>(IAsyncOperation<TResult>, Func<IAsyncOperation<TResult>, TNewResult>, AsyncContinuationOptions)
AsyncExtensions.ContinueWith<TResult, TNewResult>(IAsyncOperation<TResult>, Func<IAsyncOperation<TResult>, Object, TNewResult>, Object)
AsyncExtensions.ContinueWith<TResult, TNewResult>(IAsyncOperation<TResult>, Func<IAsyncOperation<TResult>, Object, TNewResult>, Object, AsyncContinuationOptions)
AsyncExtensions.ToTask(IAsyncOperation)
AsyncExtensions.ToTask<TResult>(IAsyncOperation<TResult>)
AsyncExtensions.GetAwaiter(IAsyncOperation)
AsyncExtensions.GetAwaiter<TResult>(IAsyncOperation<TResult>)
AsyncExtensions.ConfigureAwait(IAsyncOperation, Boolean)
AsyncExtensions.ConfigureAwait<TResult>(IAsyncOperation<TResult>, Boolean)
AsyncExtensions.ConfigureAwait(IAsyncOperation, AsyncCallbackOptions)
AsyncExtensions.ConfigureAwait<TResult>(IAsyncOperation<TResult>, AsyncCallbackOptions)
AsyncExtensions.AddCompletionCallback(IAsyncOperationCallbacks, Action)
AsyncExtensions.AddCompletionCallback(IAsyncOperationCallbacks, Action, AsyncCallbackOptions)
AsyncExtensions.AddCompletionCallback(IAsyncOperationCallbacks, Action<IAsyncOperation>)
AsyncExtensions.AddCompletionCallback(IAsyncOperationCallbacks, Action<IAsyncOperation>, AsyncCallbackOptions)
AsyncExtensions.AddCompletionCallback(IAsyncOperationCallbacks, IAsyncContinuation)
AsyncExtensions.AddCompletionCallback(IAsyncOperationCallbacks, IAsyncContinuation, AsyncCallbackOptions)
AsyncExtensions.AddProgressCallback(IAsyncOperationCallbacks, Action<Single>)
AsyncExtensions.AddProgressCallback(IAsyncOperationCallbacks, Action<Single>, AsyncCallbackOptions)
AsyncExtensions.AddProgressCallback(IAsyncOperationCallbacks, IProgress<Single>)
AsyncExtensions.AddProgressCallback(IAsyncOperationCallbacks, IProgress<Single>, AsyncCallbackOptions)
IAsyncResultExtensions.ToEnum(IAsyncResult)
IAsyncResultExtensions.SpinUntilCompleted(IAsyncResult)
IAsyncResultExtensions.SpinUntilCompleted(IAsyncResult, Int32)
IAsyncResultExtensions.SpinUntilCompleted(IAsyncResult, TimeSpan)
IAsyncResultExtensions.SpinUntilCompleted(IAsyncResult, CancellationToken)
IAsyncResultExtensions.SpinUntilCompleted(IAsyncResult, Int32, CancellationToken)
IAsyncResultExtensions.SpinUntilCompleted(IAsyncResult, TimeSpan, CancellationToken)
IObservableExtensions.ToAsync<T>(IObservable<T>)
PromiseExtensions.Then(IAsyncOperation, Action)
PromiseExtensions.Then<TResult>(IAsyncOperation<TResult>, Action<TResult>)
PromiseExtensions.Then(IAsyncOperation, Func<IAsyncOperation>)
PromiseExtensions.Then<TResult>(IAsyncOperation<TResult>, Func<TResult, IAsyncOperation>)
PromiseExtensions.Then<TResult>(IAsyncOperation, Func<IAsyncOperation<TResult>>)
PromiseExtensions.Then<TResult, TNewResult>(IAsyncOperation<TResult>, Func<TResult, IAsyncOperation<TNewResult>>)
PromiseExtensions.Then(IAsyncOperation, Action, Action<Exception>)
PromiseExtensions.Then<TResult>(IAsyncOperation<TResult>, Action<TResult>, Action<Exception>)
PromiseExtensions.Then(IAsyncOperation, Func<IAsyncOperation>, Action<Exception>)
PromiseExtensions.Then<TResult>(IAsyncOperation<TResult>, Func<TResult, IAsyncOperation>, Action<Exception>)
PromiseExtensions.ThenAll(IAsyncOperation, Func<IEnumerable<IAsyncOperation>>)
PromiseExtensions.ThenAll<T>(IAsyncOperation<T>, Func<T, IEnumerable<IAsyncOperation>>)
PromiseExtensions.ThenAll<T>(IAsyncOperation, Func<IEnumerable<IAsyncOperation<T>>>)
PromiseExtensions.ThenAll<T, U>(IAsyncOperation<T>, Func<T, IEnumerable<IAsyncOperation<U>>>)
PromiseExtensions.ThenAny(IAsyncOperation, Func<IEnumerable<IAsyncOperation>>)
PromiseExtensions.ThenAny<TResult>(IAsyncOperation<TResult>, Func<TResult, IEnumerable<IAsyncOperation>>)
PromiseExtensions.ThenAny<TResult>(IAsyncOperation, Func<IEnumerable<IAsyncOperation<TResult>>>)
PromiseExtensions.ThenAny<T, TResult>(IAsyncOperation<T>, Func<T, IEnumerable<IAsyncOperation<TResult>>>)
PromiseExtensions.ThenSequence(IAsyncOperation, Func<IEnumerable<Func<IAsyncOperation>>>)
PromiseExtensions.ThenSequence<TResult>(IAsyncOperation<TResult>, Func<IEnumerable<Func<IAsyncOperation>>>)
PromiseExtensions.ThenSequence(IAsyncOperation, Func<Func<IAsyncOperation>[]>)
PromiseExtensions.ThenSequence<TResult>(IAsyncOperation<TResult>, Func<Func<IAsyncOperation>[]>)
PromiseExtensions.Rebind<TResult>(IAsyncOperation, Func<TResult>)
PromiseExtensions.Rebind<TResult, TNewResult>(IAsyncOperation<TResult>, Func<TResult, TNewResult>)
PromiseExtensions.Catch(IAsyncOperation, Action<Exception>)
PromiseExtensions.Catch<TException>(IAsyncOperation, Action<TException>)
PromiseExtensions.Finally(IAsyncOperation, Action)
PromiseExtensions.Done(IAsyncOperation, Action)
PromiseExtensions.Done(IAsyncOperation, Action, Action<Exception>)
PromiseExtensions.Done<TResult>(IAsyncOperation<TResult>, Action<TResult>)
PromiseExtensions.Done<TResult>(IAsyncOperation<TResult>, Action<TResult>, Action<Exception>)
PromiseExtensions.Done(IAsyncOperation)

See Also

Task
IAsyncCompletionSource<TResult>
IAsyncOperation
AsyncResult<TResult>
  • Improve this Doc
  • View Source
Back to top Copyright (c) 2017-2018 Alexander Bogarsukov