subscribe<T> method
Listen to changes of a pod's state.
Call get to retrieve the latest value after the handler
is called.
Implementation
void Function() subscribe<T>(
Pod<dynamic> pod,
void Function(T value) handler, {
bool fireImmediately = false,
}) {
final node = _ensureNode(pod);
final remove = node.addListener(() {
handler(node._value as T);
});
if (fireImmediately) {
if (!node.state.initialized) {
node.value;
} else {
handler(node.value as T);
}
}
return () {
remove();
if (node.canBeRemoved) {
_scheduler.runPostFrame(() {
if (!node.canBeRemoved) return;
_removeNode(node);
});
}
};
}