watchEffect4<T1, T2, T3, T4, TObs1, TObs2, TObs3, TObs4> function
void
watchEffect4<T1, T2, T3, T4, TObs1, TObs2, TObs3, TObs4>(})
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);
}