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