getSignal<T> function

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

Get a signal's value and track dependencies

Implementation

@pragma('vm:prefer-inline')
@pragma('wasm:prefer-inline')
@pragma('dart2js:prefer-inline')
T getSignal<T>(Signal<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;
}