unwatched method

  1. @override
void unwatched(
  1. ReactiveNode node
)
override

Called when a node no longer has any subscribers.

For non-mutable nodes (like effects), stops them completely. For mutable nodes (like signals), marks them as dirty and clears their dependencies for lazy re-evaluation.

Implementation

@override
void unwatched(ReactiveNode node) {
  if ((node.flags & ReactiveFlags.mutable) == ReactiveFlags.none) {
    stop(node);
  } else if (node.depsTail != null) {
    node.depsTail = null;
    node.flags =
        17 /*ReactiveFlags.mutable | ReactiveFlags.dirty*/ as ReactiveFlags;
    purgeDeps(node);
  }
}