Interface: SignalWatcher
Documentation / @xmachines/play-signals / SignalWatcher
Defined in: packages/play-signals/src/types.ts:167
Watcher for observing signal changes and scheduling effects
Signal.subtle.Watcher enables observing multiple signals and batching updates. This is the low-level primitive used by frameworks to implement reactive effects.
Example
import { Signal } from "@xmachines/play-signals";
const count = new Signal.State(0);const doubled = new Signal.Computed(() => count.get() * 2);
const watcher = new Signal.subtle.Watcher(() => { queueMicrotask(() => { const pending = watcher.getPending(); console.log("Signals changed:", pending.length); });});
watcher.watch(count);watcher.watch(doubled);
count.set(5); // Notification scheduled via microtaskMethods
getPending()
getPending(): ( | SignalState<unknown> | SignalComputed<unknown>)[];Defined in: packages/play-signals/src/types.ts:187
Get signals that changed since last check
Returns
(
| SignalState<unknown>
| SignalComputed<unknown>)[]
Array of signals that have pending updates
unwatch()
unwatch(signal): void;Defined in: packages/play-signals/src/types.ts:180
Stop watching a signal
Parameters
| Parameter | Type | Description |
|---|---|---|
signal | | SignalState<unknown> | SignalComputed<unknown> | Signal to stop observing |
Returns
void
watch()
watch(signal): void;Defined in: packages/play-signals/src/types.ts:173
Start watching a signal for changes
Parameters
| Parameter | Type | Description |
|---|---|---|
signal | | SignalState<unknown> | SignalComputed<unknown> | Signal to observe (State or Computed) |
Returns
void