Skip to content

disposer ​

ts
function disposer(...cleanups: MaybeDispose[]): Disposer;

Creates a new Disposer instance, which collects callbacks and other Disposer instances and invokes them in reverse order when disposed, cleaning up any references as necessary.

The process of disposing is batched and untracked.

Example ​

ts
import { disposer } from "@monstermann/signals";

const a = disposer();
const b = disposer();

// Register callbacks:
a(() => console.log(1));
b(() => console.log(2));
// Register other disposers:
a(b);

// Dispose - prints: 2, 1
a();

// No effect - already disposed.
a();
b();
ts
import { disposer } from "@monstermann/signals";

const a = disposer();
const b = disposer();

a(() => console.log(1));
b(() => console.log(2));
a(b);

// Prints 2 and dereferences itself from `a`
b();

// Prints: 1
a();