executeAndCast<T> method

FutureOr<T> executeAndCast<T>()
inherited

Alias for execute, casting the result to T.

Implementation

FutureOr<T> executeAndCast<T>() {
  _initTime = DateTime.now();

  submitTime ??= _initTime;

  try {
    var ret = run();

    if (ret is Future<R>) {
      Future<T>? ret2;

      return ret2 = ret.then(
        (result) {
          _finish(result, endTime: DateTime.now());
          return result as T;
        },
        onError: (e, s) {
          ret2?.suppressUnhandledError();
          _finishError(e, s, endTime: DateTime.now());
          throw e;
        },
      );
    } else {
      _finish(ret, endTime: DateTime.now());
      return ret as T;
    }
  } catch (e, s) {
    _finishError(e, s, endTime: DateTime.now());
    rethrow;
  }
}