run method
Runs callback whenever ANY of the dependent fields changes.
- Debounce/throttle can be added later without changing call sites.
- Optionally runs once immediately via
runNow.
Implementation
DepSubscription run(
VoidCallback callback, {
bool runNow = false,
}) {
for (final name in _fields) {
if (!_registered.add(name)) continue;
final control = _deps.form.control<dynamic>(name);
void handler() => callback();
control.valueNotifier.addListener(handler);
_deps._track(() => control.valueNotifier.removeListener(handler));
}
if (runNow) callback();
return this;
}