Resolvable<T extends Object> constructor
Resolvable<T extends Object> (})
Creates a Sync or Async depending on the return type of
mustAwaitAllFutures
.
IMPORTANT:
Always all futures witin mustAwaitAllFutures
to ensure errors are be
caught and propagated.
Implementation
factory Resolvable(
@mustBeAnonymous
@mustAwaitAllFutures
FutureOr<T> Function() mustAwaitAllFutures, {
@noFuturesAllowed Err<T> Function(Object? error)? onError,
@noFuturesAllowed void Function()? onFinalize,
}) {
final result = mustAwaitAllFutures();
if (result is Future<T>) {
return Async(() => result, onError: onError, onFinalize: onFinalize);
} else {
return Sync(() => result, onError: onError, onFinalize: onFinalize);
}
}