watchEffect4<T1, T2, T3, T4, TObs1, TObs2, TObs3, TObs4> function

void watchEffect4<T1, T2, T3, T4, TObs1, TObs2, TObs3, TObs4>(
  1. BuildContext context,
  2. void effect(
    1. T1,
    2. T2,
    3. T3,
    4. T4,
    ),
  3. Object obs1,
  4. Object obs2,
  5. Object obs3,
  6. Object obs4, {
  7. Object? key,
  8. bool immediate = false,
  9. bool once = false,
})

Implementation

void watchEffect4<T1, T2, T3, T4, TObs1, TObs2, TObs3, TObs4>(
  BuildContext context,
  void Function(T1, T2, T3, T4) effect,
  Object obs1,
  Object obs2,
  Object obs3,
  Object obs4, {
  Object? key,
  bool immediate = false,
  bool once = false,
}) {
  final contextWatch = InheritedContextWatch.of(context);

  final observable1 = contextWatch.getOrCreateObservable<TObs1>(context, obs1);
  if (observable1 == null) return;
  final observable2 = contextWatch.getOrCreateObservable<TObs2>(context, obs2)!;
  final observable3 = contextWatch.getOrCreateObservable<TObs3>(context, obs3)!;
  final observable4 = contextWatch.getOrCreateObservable<TObs4>(context, obs4)!;

  observable1.watchEffect((arg1) {
    if (shouldAbortMassEffect4(
        key, observable1, observable2, observable3, observable4,
        once: once, immediate: immediate)) {
      return;
    }
    final arg2 = observable2.subscription.callbackArgument as T2;
    final arg3 = observable3.subscription.callbackArgument as T3;
    final arg4 = observable4.subscription.callbackArgument as T4;
    effect(arg1, arg2, arg3, arg4);
  }, key: key, immediate: immediate, once: once);
  observable2.watchEffect((arg2) {
    if (shouldAbortMassEffect4(
        key, observable1, observable2, observable3, observable4,
        once: once, immediate: immediate)) {
      return;
    }
    final arg1 = observable1.subscription.callbackArgument as T1;
    final arg3 = observable3.subscription.callbackArgument as T3;
    final arg4 = observable4.subscription.callbackArgument as T4;
    effect(arg1, arg2, arg3, arg4);
  }, key: key, immediate: immediate, once: once);
  observable3.watchEffect((arg3) {
    if (shouldAbortMassEffect4(
        key, observable1, observable2, observable3, observable4,
        once: once, immediate: immediate)) {
      return;
    }
    final arg1 = observable1.subscription.callbackArgument as T1;
    final arg2 = observable2.subscription.callbackArgument as T2;
    final arg4 = observable4.subscription.callbackArgument as T4;
    effect(arg1, arg2, arg3, arg4);
  }, key: key, immediate: immediate, once: once);
  observable4.watchEffect((arg4) {
    if (shouldAbortMassEffect4(
        key, observable1, observable2, observable3, observable4,
        once: once, immediate: immediate)) {
      return;
    }
    final arg1 = observable1.subscription.callbackArgument as T1;
    final arg2 = observable2.subscription.callbackArgument as T2;
    final arg3 = observable3.subscription.callbackArgument as T3;
    effect(arg1, arg2, arg3, arg4);
  }, key: key, immediate: immediate, once: once);
}