asyncHandle<T> function
Async Event Exception Handler
Implementation
Future<T?> asyncHandle<T>(
FutureOr<T?> Function() task, {
T? Function(String msg)? alt,
FutureOr<T?> Function(FutureOr<T?> condition, bool success)? ult,
}) async {
T? _alt(String e) => (alt ?? (e) => null)(e);
FutureOr<T?> _ult(FutureOr<T?> c, bool s) => (ult ?? (c, s) async => await c)(c, s);
try {
return await _ult(await task(), true);
} catch (e) {
try {
return _ult(_alt((e as Exception).msg), false);
} catch (e) {
return _ult(_alt(''), false);
}
}
}