core / const
dispose
Disposes multiple derived signals and/or effects at once.
Disposes multiple derived signals and/or effects at once.
This utility function calls .dispose() on each
argument, stopping dependency tracking for derived signals and
marking effects for disposal.
Signature
export const dispose = (
...derivedSignalsOrEffects: (DerivedSignal<any> | SignalsEffect)[]
): void => {
derivedSignalsOrEffects.forEach((dsigOrEff) => dsigOrEff.dispose());
};
Parameters
and/or effects to dispose
derivedSignalsOrEffects: Variable arguments of derived signals
Remarks
- Empty argument list is valid (no-op)
- Can mix derived signals and effects in the same call
- Disposing the same effect multiple times is safe (idempotent)
- For derived signals: stops dependency tracking
- For effects: marks for disposal (removed on next signal update)
Examples
const count = signal(0);
const doubled = derive(() => count.value * 2);
const eff = effect(() => console.log(count.value));
// Dispose single
dispose(doubled);
// Dispose multiple
dispose(doubled, eff);
// Mixed disposal
dispose(doubled, eff);
// Empty (no-op)
dispose();
See Also
- DerivedSignal.dispose - For disposing individual derived signals
- SignalsEffect.dispose - For disposing individual effects