Async<T extends Object> class final

A Outcome that represents a Resolvable that holds an asynchronous Result.

The contained value is always a Future.

IMPORTANT:

Await all Futures in the constructor Async.new to ensure errors are properly caught and propagated.

Inheritance
Implemented types
Available extensions

Constructors

Async(@mustBeAnonymous @mustAwaitAllFutures Future<T> mustAwaitAllFutures(), {@noFutures TOnErrorCallback<T>? onError, @noFutures TVoidCallback? onFinalize})
Creates an Async by executing an asynchronous function mustAwaitAllFutures.
factory
Async.err(FutureOr<Err<T>> err)
Async.errValue(FutureOr<({Object error, int? statusCode})> error)
Async.ok(FutureOr<Ok<T>> ok)
Async.okValue(FutureOr<T> okValue)
Async.result(FutureOr<Result<T>> value)

Properties

hashCode → int
The hash code for this object.
no setterinherited
props → List<Object?>
The list of properties that will be used to determine whether two instances are equal.
no setterinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
stringify → bool?
If set to true, the toString method will be overridden to output this instance's props.
no setterinherited
value → Future<Result<T>>
no setteroverride

Methods

asResolvable() → Resolvable<T>
Returns this as a base Resolvable type.
inherited
async() → Ok<Async<T>>
Safely gets the Async instance. Returns an Ok on Async, or an Err on Sync.
override
asyncOr(Resolvable<T> other) → Async<T>
Returns this if it's Async, otherwise returns other.
override
end() → void
Suppresses the linter error must_use_outcome. Returns void in every subtype — calling .end() is the "I am intentionally discarding this Outcome" marker, so the call site never needs to think about a Future. For Async this means the underlying future is detached internally via unawaited(...); if you actually need to await completion, use .value.
override
err() → Future<Option<Err<T>>>
Safely gets the Err instance, resolving any Future.
override
errOr(Resolvable<T> other) → Async<T>
Returns this if it contains an Err, otherwise returns other.
override
flatMap<R extends Object>(Resolvable<R> noFutures(T value)) → Async<R>
Chains another Resolvable-producing operation: the monadic bind for Resolvable. If this is in an Err state, the chain short-circuits with that Err. If noFutures throws, the throw is absorbed into an Err.
override
flatten() → Async<T>

Available on Async<Async<Async<Async<T>>>>, provided by the FlattenAsyncExt4 extension

flatten() → Resolvable<T>

Available on Resolvable<Resolvable<T>>, provided by the FlattenResolvableExt2 extension

flatten() → Resolvable<T>

Available on Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<T>>>>>>, provided by the FlattenResolvableExt6 extension

flatten() → Resolvable<T>

Available on Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<T>>>>>, provided by the FlattenResolvableExt5 extension

flatten() → Resolvable<T>

Available on Resolvable<Result<Result<Result<Result<Result<Result<Result<Result<T>>>>>>>>>, provided by the FlattenResolvableResulteExt9 extension

flatten() → Resolvable<T>

Available on Resolvable<Resolvable<Resolvable<Resolvable<T>>>>, provided by the FlattenResolvableExt4 extension

flatten() → Resolvable<T>

Available on Resolvable<Resolvable<Resolvable<T>>>, provided by the FlattenResolvableExt3 extension

flatten() → Resolvable<T>

Available on Resolvable<Result<Result<Result<Result<Result<Result<Result<T>>>>>>>>, provided by the FlattenResolvableResulteExt8 extension

flatten() → Resolvable<T>

Available on Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<T>>>>>>>>, provided by the FlattenResolvableExt8 extension

flatten() → Resolvable<T>

Available on Resolvable<Result<Result<Result<Result<Result<Result<T>>>>>>>, provided by the FlattenResolvableResulteExt7 extension

flatten() → Async<T>

Available on Async<Async<Async<Async<Async<Async<Async<Async<Async<T>>>>>>>>>, provided by the FlattenAsyncExt9 extension

flatten() → Async<T>

Available on Async<Async<Async<Async<Async<Async<Async<Async<T>>>>>>>>, provided by the FlattenAsyncExt8 extension

flatten() → Async<T>

Available on Async<Async<Async<Async<Async<Async<Async<T>>>>>>>, provided by the FlattenAsyncExt7 extension

flatten() → Resolvable<T>

Available on Resolvable<Result<Result<Result<Result<Result<T>>>>>>, provided by the FlattenResolvableResulteExt6 extension

flatten() → Async<T>

Available on Async<Async<Async<Async<Async<Async<T>>>>>>, provided by the FlattenAsyncExt6 extension

flatten() → Resolvable<T>

Available on Resolvable<Result<Result<Result<Result<T>>>>>, provided by the FlattenResolvableResulteExt5 extension

flatten() → Resolvable<T>

Available on Resolvable<Result<Result<Result<T>>>>, provided by the FlattenResolvableResulteExt4 extension

flatten() → Resolvable<T>

Available on Resolvable<Result<T>>, provided by the FlattenResolvableResultExt2 extension

flatten() → Resolvable<T>

Available on Resolvable<Result<Result<T>>>, provided by the FlattenResolvableResulteExt3 extension

flatten() → Async<T>

Available on Async<Async<Async<T>>>, provided by the FlattenAsyncExt3 extension

flatten() → Resolvable<T>

Available on Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<T>>>>>>>>>, provided by the FlattenResolvableExt9 extension

flatten() → Async<T>

Available on Async<Async<Async<Async<Async<T>>>>>, provided by the FlattenAsyncExt5 extension

flatten() → Async<T>

Available on Async<Async<T>>, provided by the FlattenAsyncExt2 extension

flatten() → Resolvable<T>

Available on Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<T>>>>>>>, provided by the FlattenResolvableExt7 extension

flatten2() → Resolvable<T>

Available on Resolvable<Resolvable<T>>, provided by the FlattenResolvableExt2 extension

flatten2() → Resolvable<T>

Available on Resolvable<Result<T>>, provided by the FlattenResolvableResultExt2 extension

flatten2() → Async<T>

Available on Async<Async<T>>, provided by the FlattenAsyncExt2 extension

flatten3() → Resolvable<T>

Available on Resolvable<Resolvable<Resolvable<T>>>, provided by the FlattenResolvableExt3 extension

flatten3() → Async<T>

Available on Async<Async<Async<T>>>, provided by the FlattenAsyncExt3 extension

flatten3() → Resolvable<T>

Available on Resolvable<Result<Result<T>>>, provided by the FlattenResolvableResulteExt3 extension

flatten4() → Resolvable<T>

Available on Resolvable<Resolvable<Resolvable<Resolvable<T>>>>, provided by the FlattenResolvableExt4 extension

flatten4() → Async<T>

Available on Async<Async<Async<Async<T>>>>, provided by the FlattenAsyncExt4 extension

flatten4() → Resolvable<T>

Available on Resolvable<Result<Result<Result<T>>>>, provided by the FlattenResolvableResulteExt4 extension

flatten5() → Async<T>

Available on Async<Async<Async<Async<Async<T>>>>>, provided by the FlattenAsyncExt5 extension

flatten5() → Resolvable<T>

Available on Resolvable<Result<Result<Result<Result<T>>>>>, provided by the FlattenResolvableResulteExt5 extension

flatten5() → Resolvable<T>

Available on Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<T>>>>>, provided by the FlattenResolvableExt5 extension

flatten6() → Resolvable<T>

Available on Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<T>>>>>>, provided by the FlattenResolvableExt6 extension

flatten6() → Async<T>

Available on Async<Async<Async<Async<Async<Async<T>>>>>>, provided by the FlattenAsyncExt6 extension

flatten6() → Resolvable<T>

Available on Resolvable<Result<Result<Result<Result<Result<T>>>>>>, provided by the FlattenResolvableResulteExt6 extension

flatten7() → Async<T>

Available on Async<Async<Async<Async<Async<Async<Async<T>>>>>>>, provided by the FlattenAsyncExt7 extension

flatten7() → Resolvable<T>

Available on Resolvable<Result<Result<Result<Result<Result<Result<T>>>>>>>, provided by the FlattenResolvableResulteExt7 extension

flatten7() → Resolvable<T>

Available on Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<T>>>>>>>, provided by the FlattenResolvableExt7 extension

flatten8() → Resolvable<T>

Available on Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<T>>>>>>>>, provided by the FlattenResolvableExt8 extension

flatten8() → Async<T>

Available on Async<Async<Async<Async<Async<Async<Async<Async<T>>>>>>>>, provided by the FlattenAsyncExt8 extension

flatten8() → Resolvable<T>

Available on Resolvable<Result<Result<Result<Result<Result<Result<Result<T>>>>>>>>, provided by the FlattenResolvableResulteExt8 extension

flatten9() → Resolvable<T>

Available on Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<T>>>>>>>>>, provided by the FlattenResolvableExt9 extension

flatten9() → Async<T>

Available on Async<Async<Async<Async<Async<Async<Async<Async<Async<T>>>>>>>>>, provided by the FlattenAsyncExt9 extension

flatten9() → Resolvable<T>

Available on Resolvable<Result<Result<Result<Result<Result<Result<Result<Result<T>>>>>>>>>, provided by the FlattenResolvableResulteExt9 extension

fold(Resolvable<Object>? onSync(Sync<T> sync), Resolvable<Object>? onAsync(Async<T> async)) → Resolvable<Object>
Handles Sync and Async cases to produce a new Resolvable.
override
foldResult(Result<Object>? onOk(Ok<T> ok), Result<Object>? onErr(Err<T> err)) → Async<Object>
Exhaustively handles the inner Ok and Err cases, returning a new Resolvable.
override
ifAsync(void noFutures(Async<T> self, Async<T> async)) → Async<T>
Performs a side-effect if this is Async.
override
ifErr(void noFutures(Async<T> self, Err<T> err)) → Resolvable<T>
Performs a side-effect if this is Err.
override
ifOk(void noFutures(Async<T> self, Ok<T> ok)) → Resolvable<T>
Performs a side-effect if this is Ok.
override
ifSync(void noFutures(Async<T> self, Sync<T> async)) → Async<T>
Performs a side-effect if this is Sync.
override
isAsync() → bool
Returns true if this is an Async instance.
override
isSync() → bool
Returns true if this is a Sync instance.
override
map<R extends Object>(R noFutures(T value)) → Async<R>
Prefer using then for Async.
override
map10<R extends Object>(R mapper(T)) → TResolvableOption<Object>

Available on Outcome<Outcome<Outcome<Outcome<Outcome<Outcome<Outcome<Outcome<Outcome<Outcome<Object>>>>>>>>>>, provided by the MapOutcomeExt10 extension

map2<R extends Object>(R mapper(T)) → TResolvableOption<Object>

Available on Outcome<Outcome<Object>>, provided by the MapOutcomeExt2 extension

map3<R extends Object>(R mapper(T)) → TResolvableOption<Object>

Available on Outcome<Outcome<Outcome<Object>>>, provided by the MapOutcomeExt3 extension

map4<R extends Object>(R mapper(T)) → TResolvableOption<Object>

Available on Outcome<Outcome<Outcome<Outcome<Object>>>>, provided by the MapOutcomeExt4 extension

map5<R extends Object>(R mapper(T)) → TResolvableOption<Object>

Available on Outcome<Outcome<Outcome<Outcome<Outcome<Object>>>>>, provided by the MapOutcomeExt5 extension

map6<R extends Object>(R mapper(T)) → TResolvableOption<Object>

Available on Outcome<Outcome<Outcome<Outcome<Outcome<Outcome<Object>>>>>>, provided by the MapOutcomeExt6 extension

map7<R extends Object>(R mapper(T)) → TResolvableOption<Object>

Available on Outcome<Outcome<Outcome<Outcome<Outcome<Outcome<Outcome<Object>>>>>>>, provided by the MapOutcomeExt7 extension

map8<R extends Object>(R mapper(T)) → TResolvableOption<Object>

Available on Outcome<Outcome<Outcome<Outcome<Outcome<Outcome<Outcome<Outcome<Object>>>>>>>>, provided by the MapOutcomeExt8 extension

map9<R extends Object>(R mapper(T)) → TResolvableOption<Object>

Available on Outcome<Outcome<Outcome<Outcome<Outcome<Outcome<Outcome<Outcome<Outcome<Object>>>>>>>>>, provided by the MapOutcomeExt9 extension

mapAsync(Async<T> noFutures(Async<T> async)) → Async<T>
Transforms the inner Async instance if this is an Async.
override
mapFutureOr<R extends Object>(FutureOr<R> mapper(T value)) → Async<R>
Maps the contained Ok value using a function that returns a FutureOr.
override
mapSync(Sync<T> noFutures(Sync<T> sync)) → Async<T>
Transforms the inner Sync instance if this is a Sync.
override
named(String label) → Async<T>

Available on Async<T>, provided by the NamedAsyncExt extension

named(String label) → Resolvable<T>

Available on Resolvable<T>, provided by the NamedResolvableExt extension

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
ok() → Future<Option<Ok<T>>>
Safely gets the Ok instance, resolving any Future.
override
okOr(Resolvable<T> other) → Async<T>
Returns this if it contains an Ok, otherwise returns other.
override
orNull() → Future<T?>
Returns the contained Ok value or null, resolving any Future.
override
raw({required FutureOr<Object> onErr(Err<Object> err), required FutureOr<Object> onNone()}) → FutureOr<Object>
The low-level primitive for reducing a Outcome chain. It recursively unwraps all Outcome layers to return the innermost raw value, forcing the caller to handle terminal states via callbacks.
inherited
rawAsync() → Async<Object>
Reduces any Outcome chain to a single Async.
inherited
rawSync() → Sync<Object>
Safely reduces any Outcome chain to a single Sync.
inherited
reduce<R extends Object>() → TResolvableOption<R>
Reduces any nested Outcome structure into a single TResolvableOption.
inherited
resultMap<R extends Object>(Result<R> noFutures(Result<T> value)) → Async<R>
Maps the inner Result of this Resolvable using mapper.
override
swap() → Ok<Resolvable<T>>

Available on Resolvable<Ok<T>>, provided by the SwapResolvableOkExt extension

swap() → Some<Async<T>>

Available on Async<Some<T>>, provided by the SwapAsyncSomeExt extension

swap() → None<Resolvable<T>>

Available on Resolvable<None<T>>, provided by the SwapResolvableNoneExt extension

swap() → Some<Resolvable<T>>

Available on Resolvable<Some<T>>, provided by the SwapResolvableSomeExt extension

swap() → Ok<Async<T>>

Available on Async<Ok<T>>, provided by the SwapAsyncOkExt extension

swap() → None<Async<T>>

Available on Async<None<T>>, provided by the SwapAsyncNoneExt extension

sync() → Err<Sync<T>>
Safely gets the Sync instance. Returns an Ok on Sync, or an Err on Async.
override
syncOr(Resolvable<T> other) → Resolvable<T>
Returns this if it's Sync, otherwise returns other.
override
then<R extends Object>(R noFutures(T value)) → Async<R>
override
toAsync() → Async<T>
Converts this Resolvable to an Async.
override
toString() → String
A string representation of this object.
inherited
toUnit() → Async<Unit>

Available on Async<Object>, provided by the ToUnitOnObjectAsync extension

toUnit() → Outcome<Unit>

Available on Outcome<Object>, provided by the ToUnitOnObjectOutcome extension

toUnit() → Resolvable<Unit>

Available on Resolvable<Object>, provided by the ToUnitOnObjectResolvable extension

toVoid() → Resolvable<void>

Available on Resolvable<T>, provided by the ToVoidOnResolvableExt extension

toVoid() → Async<void>

Available on Async<T>, provided by the ToVoidOnAsyncExt extension

toVoid() → Outcome<void>

Available on Outcome<T>, provided by the ToVoidOnOutcomeExt extension

transf<R extends Object>([R noFutures(T e)?]) → Async<R>
Transforms the Outcome's generic type from T to R.
override
unwrap() → Future<T>
Strongly discouraged: Unsafely returns the contained value.
override
unwrapAsync() → Future<T>

Available on Async<Option<T>>, provided by the AsyncOptionExt extension

unwrapAsync() → Future<T>

Available on Resolvable<Option<T>>, provided by the ResolvableOptionExt extension

unwrapOr(T fallback) → FutureOr<T>
Returns the contained value, or the fallback if the Outcome is in an Err or None state.
override
unwrapSync() → T

Available on Resolvable<Option<T>>, provided by the ResolvableOptionExt extension

whenComplete<R extends Object>(Resolvable<R> noFutures(Sync<T> resolved)) → Async<R>
override
withMinDuration(Duration? duration) → Resolvable<T>
Ensures that resolving this value takes at least a specified duration. If duration is null, this method returns the original value immediately.
inherited
wrapInAsync() → Async<M>

Available on M, provided by the WrapOnOutcomeExt extension

wrapInOk() → Ok<M>

Available on M, provided by the WrapOnOutcomeExt extension

wrapInResolvable() → Resolvable<M>

Available on M, provided by the WrapOnOutcomeExt extension

wrapInSome() → Some<M>

Available on M, provided by the WrapOnOutcomeExt extension

wrapInSync() → Sync<M>

Available on M, provided by the WrapOnOutcomeExt extension

wrapValueInAsync() → Resolvable<Async<T>>

Available on Resolvable<T>, provided by the WrapOnResolvableExt extension

wrapValueInAsync() → Outcome<Async<T>>

Available on M, provided by the WrapOnOutcomeExt extension

wrapValueInAsync() → Async<Async<T>>

Available on Async<T>, provided by the WrapOnAsyncExt extension

wrapValueInOk() → Async<Ok<T>>

Available on Async<T>, provided by the WrapOnAsyncExt extension

wrapValueInOk() → Outcome<Ok<T>>

Available on M, provided by the WrapOnOutcomeExt extension

wrapValueInOk() → Resolvable<Ok<T>>

Available on Resolvable<T>, provided by the WrapOnResolvableExt extension

wrapValueInResolvable() → Async<Resolvable<T>>

Available on Async<T>, provided by the WrapOnAsyncExt extension

wrapValueInResolvable() → Outcome<Resolvable<T>>

Available on M, provided by the WrapOnOutcomeExt extension

wrapValueInResolvable() → Resolvable<Resolvable<T>>

Available on Resolvable<T>, provided by the WrapOnResolvableExt extension

wrapValueInSome() → Async<Some<T>>

Available on Async<T>, provided by the WrapOnAsyncExt extension

wrapValueInSome() → Outcome<Some<T>>

Available on M, provided by the WrapOnOutcomeExt extension

wrapValueInSome() → Resolvable<Some<T>>

Available on Resolvable<T>, provided by the WrapOnResolvableExt extension

wrapValueInSync() → Async<Sync<T>>

Available on Async<T>, provided by the WrapOnAsyncExt extension

wrapValueInSync() → Outcome<Sync<T>>

Available on M, provided by the WrapOnOutcomeExt extension

wrapValueInSync() → Resolvable<Sync<T>>

Available on Resolvable<T>, provided by the WrapOnResolvableExt extension

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Static Methods

combine2<T1 extends Object, T2 extends Object>(Async<T1> a1, Async<T2> a2, [Err<(T1, T2)> onErr(Result<T1>, Result<T2>)?]) → Async<(T1, T2)>
Combines 2 Async outcomes into 1 containing a tuple of their values if all resolve to Ok.
override
combine3<T1 extends Object, T2 extends Object, T3 extends Object>(Async<T1> a1, Async<T2> a2, Async<T3> a3, [Err<(T1, T2, T3)> onErr(Result<T1>, Result<T2>, Result<T3>)?]) → Async<(T1, T2, T3)>
Combines 3 Async outcomes into 1 containing a tuple of their values if all resolve to Ok.
override