reduce<C extends Object, P1 extends Object, P2 extends Object> static method
ChildPod<Object, C>
reduce<C extends Object, P1 extends Object, P2 extends Object>(
- TResponderFn2<
P1, P2> responder, - TNullableReducerFn2<
C, P1, P2> reducer
Reduces 2 Pods into a ChildPod. See PodReducer1.reduce — the same
single-invocation guarantee applies here.
Implementation
static ChildPod<Object, C>
reduce<C extends Object, P1 extends Object, P2 extends Object>(
TResponderFn2<P1, P2> responder,
TNullableReducerFn2<C, P1, P2> reducer,
) {
late (GenericPod<P1>, GenericPod<P2>) cached;
return ChildPod<Object, C>(
responder: () {
cached = responder();
return [cached.$1, cached.$2];
},
reducer: (_) => reducer(cached.$1, cached.$2),
);
}