Async<T extends Object>  constructor 
      
      Async<T extends Object> (
    
- @mustBeAnonymous @mustAwaitAllFutures Future<T> mustAwaitAllFutures(), {
- @noFutures TOnErrorCallback<T> ? onError,
- @noFutures TVoidCallback? onFinalize,
Creates an Async by executing an asynchronous function
mustAwaitAllFutures.
IMPORTANT:
Always all futures witin mustAwaitAllFutures to ensure errors are be
caught and propagated.
Implementation
factory Async(
  @mustBeAnonymous
  @mustAwaitAllFutures
  Future<T> Function() mustAwaitAllFutures, {
  @noFutures TOnErrorCallback<T>? onError,
  @noFutures TVoidCallback? onFinalize,
}) {
  assert(!isSubtype<T, Future<Object>>(), '$T must never be a Future.');
  return Async.result(() async {
    try {
      return Ok<T>(await mustAwaitAllFutures());
    } on Err catch (err) {
      return err.transfErr<T>();
    } catch (error, stackTrace) {
      try {
        if (onError == null) {
          rethrow;
        }
        return onError(error, stackTrace);
      } catch (error, stackTrace) {
        return Err<T>(error, stackTrace: stackTrace);
      }
    } finally {
      onFinalize?.call();
    }
  }());
}