setSignal<T> function

T setSignal<T>(
  1. SignalReactiveNode<T> signal,
  2. T newValue
)

Assigns a new pending value to a signal and schedules subscribers.

Parameters:

  • signal: Signal whose value should change
  • newValue: Value to assign

Example:

final countNode = CustomSignalNode<int>(0);
setSignal(countNode, 42);

Implementation

@pragma("vm:prefer-inline")
@pragma("wasm:prefer-inline")
@pragma("dart2js:prefer-inline")
T setSignal<T>(SignalReactiveNode<T> signal, T newValue) {
  if (signal.pendingValue != (signal.pendingValue = newValue)) {
    signal.flags = ReactiveFlags.mutable | ReactiveFlags.dirty;

    final subs = signal.subs;
    if (subs != null) {
      propagate(subs);
      if (batchDepth == 0) {
        flushEffects();
      }
    }

    JoltDebug.set(signal);
  }
  return newValue;
}