@gluonjs/reactivity / packages/reactivity/src/signals / SignalBridge
Interface: SignalBridge<T>
Extended by
Type Parameters
T
T
Properties
connected
readonlyconnected:boolean
value
readonlyvalue:T
Methods
[dispose]()
[dispose]():
void
Returns
void
connect()
connect():
void
Returns
void
disconnect()
disconnect():
void
Returns
void
Example
Read an external signal graph through a lifecycle-owned reactive Gluon boundary:
import {
Signal,
fromStandardSignal,
type BridgeOptions,
type SignalBridge,
type StandardSignal,
type StandardSignalBridgeOptions,
type StandardSignalImplementation,
type StandardSignalWatcher,
type WritableSignalBridge,
type WritableStandardSignal,
} from '@gluonjs/reactivity/signals';
const implementation: StandardSignalImplementation = Signal;
const quantity: WritableStandardSignal<number> = new Signal.State(1);
const totalSource: StandardSignal<number> = new Signal.Computed(() => quantity.get() * 48);
const options: StandardSignalBridgeOptions = { implementation, connect: true };
const scheduling: BridgeOptions = { schedule: (job) => queueMicrotask(job) };
const quantityBridge: WritableSignalBridge<number> = fromStandardSignal(quantity, scheduling);
const total: SignalBridge<number> = fromStandardSignal(totalSource, options);
const watcher: StandardSignalWatcher = new implementation.subtle.Watcher(() => undefined);
watcher.watch(totalSource);
quantityBridge.value = 2;
console.log(total.value);
watcher.unwatch(totalSource);
quantityBridge.disconnect();
total.disconnect();