onComplete method
Future<T?>
onComplete({
- required FutureOr<
void> onSuccess(- T? r
- FutureOr<
void> onError(- Object e,
- StackTrace s
- FutureOr<
void> onErrorOrNull(- Object? e,
- StackTrace? s
- AsyncExtensionErrorLogger? errorLogger,
- bool logError = true,
Calls onSuccess or onError when this Future completes.
If onErrorOrNull is defined, calls onErrorOrNull if it completes
with null or with an error.
Logs the error using errorLogger or defaultAsyncExtensionErrorLogger
if parameter logError is true.
Implementation
Future<T?> onComplete({
required FutureOr<void> Function(T? r) onSuccess,
FutureOr<void> Function(Object e, StackTrace s)? onError,
FutureOr<void> Function(Object? e, StackTrace? s)? onErrorOrNull,
AsyncExtensionErrorLogger? errorLogger,
bool logError = true,
}) async {
try {
var r = await this;
if (r == null && onErrorOrNull != null) {
await onErrorOrNull(null, null);
} else {
await onSuccess(r);
}
return r;
} catch (e, s) {
if (logError) errorLogger.logError(e, s);
if (onErrorOrNull != null) {
await onErrorOrNull(e, s);
} else if (onError != null) {
await onError(e, s);
}
return null;
}
}