Resolvable<T extends Object> constructor
Resolvable<T extends Object> (
- @mustBeAnonymous @mustAwaitAllFutures FutureOr<
T> mustAwaitAllFutures(), { - @noFutures TOnErrorCallback<
T> ? onError, - @noFutures TVoidCallback? onFinalize,
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, {
@noFutures TOnErrorCallback<T>? onError,
@noFutures TVoidCallback? onFinalize,
}) {
final result = mustAwaitAllFutures();
if (result is Future<T>) {
return Async(() => result, onError: onError, onFinalize: onFinalize);
} else {
return Sync(() => result, onError: onError, onFinalize: onFinalize);
}
}