reduce<C extends Object, P1 extends Object, P2 extends Object, P3 extends Object, P4 extends Object> static method

ChildPod<Object, C> reduce<C extends Object, P1 extends Object, P2 extends Object, P3 extends Object, P4 extends Object>(
  1. TResponderFn4<P1, P2, P3, P4> responder,
  2. TReducerFn4<C, P1, P2, P3, P4> reducer
)

Reduces 4 Pods into a ChildPod.

Implementation

static ChildPod<Object, C> reduce<C extends Object, P1 extends Object,
    P2 extends Object, P3 extends Object, P4 extends Object>(
  TResponderFn4<P1, P2, P3, P4> responder,
  TReducerFn4<C, P1, P2, P3, P4> reducer,
) {
  late (
    GenericPod<P1>,
    GenericPod<P2>,
    GenericPod<P3>,
    GenericPod<P4>
  ) cached;
  return ChildPod<Object, C>(
    responder: () {
      cached = responder();
      return [cached.$1, cached.$2, cached.$3, cached.$4];
    },
    reducer: (_) => reducer(cached.$1, cached.$2, cached.$3, cached.$4),
  );
}