getSignal<T> function

T getSignal<T>(
  1. SignalReactiveNode<T> signal
)

Returns the current cached value of a signal and links it to the active subscriber.

Parameters:

  • signal: Signal to read

Example:

final countNode = CustomSignalNode<int>(0);
final value = getSignal(countNode);

Implementation

@pragma("vm:prefer-inline")
@pragma("wasm:prefer-inline")
@pragma("dart2js:prefer-inline")
T getSignal<T>(SignalReactiveNode<T> signal) {
  if (signal.flags & (ReactiveFlags.dirty) != 0) {
    if (updateSignal<T>(signal)) {
      final subs = signal.subs;
      if (subs != null) {
        shallowPropagate(subs);
      }
    }
  }
  var sub = activeSub;
  while (sub != null) {
    if (sub.flags & (ReactiveFlags.mutable | ReactiveFlags.watching) != 0) {
      link(signal, sub, cycle);

      break;
    }
    sub = sub.subs?.sub;
  }

  JoltDebug.get(signal);

  return signal.cachedValue as T;
}