tryCallThen<R2> method
FutureOr<R2>
tryCallThen<R2>(
- A a,
- FutureOr<
R2> onValue(- R value
- FutureOr<
R> then(- R value
- TryCallOnError<
R2> ? onError,
Implementation
FutureOr<R2> tryCallThen<R2>(A a, FutureOr<R2> Function(R value) onValue,
{FutureOr<R> Function(R value)? then, TryCallOnError<R2>? onError}) {
var f = this;
if (onError != null) {
try {
var r = f(a);
if (r is Future<R>) {
return r.then(onValue, onError: onError);
} else {
try {
var r2 = onValue(r);
if (r2 is Future<R2>) {
return r2.onError(onError);
} else {
return r2;
}
} catch (e, s) {
return onError(e, s);
}
}
} catch (e, s) {
return onError(e, s);
}
} else {
var r = f(a);
if (r is Future<R>) {
return r.then(onValue, onError: onError);
} else {
return onValue(r);
}
}
}