core / const

dispose

Disposes multiple derived signals and/or effects at once.

Source: src/_core/dispose.ts

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