reduce<C extends Object, P1 extends Object> static method
ChildPod<Object, C>
reduce<C extends Object, P1 extends Object>(
- TResponderFn1<
P1> responder, - TNullableReducerFn1<
C, P1> reducer
Reduces 1 Pod into a ChildPod. The user-supplied responder is
invoked exactly once per refresh — its output is cached for the
reducer call instead of being re-invoked, so side-effectful responders
(e.g. DI lookups) do not run twice per parent fire.
Implementation
static ChildPod<Object, C> reduce<C extends Object, P1 extends Object>(
TResponderFn1<P1> responder,
TNullableReducerFn1<C, P1> reducer,
) {
late (GenericPod<P1>,) cached;
return ChildPod<Object, C>(
responder: () {
cached = responder();
return [cached.$1];
},
reducer: (_) => reducer(cached.$1),
);
}