getSignal<T> function
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;
}