chain method
Callback4Arg<T1, T2, T3, T4>
chain(
- covariant Callback4Arg<
T1, T2, T3, T4> ? a, - covariant Callback4Arg<
T1, T2, T3, T4> ? b
override
Returns a strongly-typed chained callback that calls through to the two provided callbacks, a
and b
, in order.
Useful for executing multiple callbacks where only a single callback is accepted.
Returns false
if one or more of the provided callbacks returns false
.
Gracefully handles when a
and/or b
are null, always returning a callable function.
Implementation
@override
Callback4Arg<T1, T2, T3, T4> chain(Callback4Arg<T1, T2, T3, T4>? a, Callback4Arg<T1, T2, T3, T4>? b) {
if (a == null) return b ?? noop;
if (b == null) return a;
dynamic chained(T1 arg1, T2 arg2, T3 arg3, T4 arg4) {
var aDidReturnFalse = a(arg1, arg2, arg3, arg4) == false;
var bDidReturnFalse = b(arg1, arg2, arg3, arg4) == false;
if (aDidReturnFalse || bDidReturnFalse) return false;
}
return chained;
}