Interface: SignalWatcher
API / @xmachines/play-signals / SignalWatcher
Defined in: packages/play-signals/src/types.ts:169
The watcher. It observes each signal change and schedules an effect
Signal.subtle.Watcher observes more than one signal, and it groups the updates. It is the low-level primitive, and a framework uses it to make a reactive effect.
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); // The watcher schedules the notification in a microtaskMethods
getPending()
getPending(): ( | SignalState<unknown> | SignalComputed<unknown>)[];Defined in: packages/play-signals/src/types.ts:189
Returns the signals that changed after the last check
Returns
(
| SignalState<unknown>
| SignalComputed<unknown>)[]
The array of the signals with an update that waits
unwatch()
unwatch(signal): void;Defined in: packages/play-signals/src/types.ts:182
Stops the watch of one signal
Parameters
| Parameter | Type | Description |
|---|---|---|
signal | | SignalState<unknown> | SignalComputed<unknown> | The signal to leave |
Returns
void
watch()
watch(signal): void;Defined in: packages/play-signals/src/types.ts:175
Starts the watch of one signal
Parameters
| Parameter | Type | Description |
|---|---|---|
signal | | SignalState<unknown> | SignalComputed<unknown> | The signal to observe: a State or a Computed |
Returns
void