onCompleteNotNull method
Future<T?>
onCompleteNotNull({
- required FutureOr<
void> onSuccess(- T r
- required FutureOr<
void> onErrorOrNull(- Object? e,
- StackTrace? s
- AsyncExtensionErrorLogger? errorLogger,
- bool logError = true,
Calls onSuccess
or onErrorOrNull
when this Future completes.
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?> onCompleteNotNull({
required FutureOr<void> Function(T r) onSuccess,
required FutureOr<void> Function(Object? e, StackTrace? s) onErrorOrNull,
AsyncExtensionErrorLogger? errorLogger,
bool logError = true,
}) async {
try {
var r = await this;
if (r == null) {
await onErrorOrNull(null, null);
} else {
await onSuccess(r);
}
return r;
} catch (e, s) {
if (logError) errorLogger.logError(e, s);
await onErrorOrNull(e, s);
return null;
}
}