Skip to content

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 microtask

Methods

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

ParameterTypeDescription
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

ParameterTypeDescription
signal| SignalState<unknown> | SignalComputed<unknown>The signal to observe: a State or a Computed

Returns

void