executeAndCast<T> method

FutureOr<T> executeAndCast<T>()

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;
  }
}