api / const
transmit
Broadcasts changes from one transmitter signal to multiple receiver signals.
Broadcasts changes from one transmitter signal to multiple receiver signals.
When the transmitter changes, all receivers are updated synchronously to the same value. Each receiver remains independently mutable.
Signature
export const transmit = <T>(
transmittor: Signal<T>,
...receivers: SourceSignal<T>[]
): SignalsEffect =>
effect(() => {
receivers.forEach((receiver) => (receiver.value = transmittor.value));
});
Type Parameters
- The type of value the signals hold
Parameters
transmittor: A signal (source or derived) that broadcasts changesreceivers: Multiple source signals that will receive updates
Returns
A single effect that can be disposed to disconnect the broadcast
Remarks
- A single effect manages all receiver updates
- Transmitter can be source or derived signal
- Receivers must be source signals
- Passing no receivers creates a no-op effect
- The order of receiver updates is not guaranteed
Examples
const temperature = signal(22);
const display1 = signal(0);
const display2 = signal(0);
const display3 = signal(0);
const effect = transmit(temperature, display1, display2, display3);
temperature.value = 25;
console.log(display1.value); // 25
console.log(display2.value); // 25
console.log(display3.value); // 25
// Manual updates still work
display1.value = 30;
// Dispose connection
effect.dispose();