executeAndCast<T> method
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;
}
}