Home > @wixc3/patterns > createDisposables
Disposables allow adding of disposal async functions, when dispose is called, these functions will be run sequentially
Disposal groups: You can set disposal groups with constraints (before, after) to ensure that disposal groups are disposed in the correct order
within each group disposables are disposed in the reverse order they were added
Signature:
export declare function createDisposables(name: string, initialGroups?: string[]): Disposables;
Parameter | Type | Description |
---|---|---|
name | string | |
initialGroups | string\[\] | _(Optional)_ |
Returns:
const disposables = createDisposables('sample');
disposables.add(() => console.log('disposable 1'));
disposables.add({dispose: () => console.log('disposable 2')});
disposables.dispose();
// disposable 2
// disposable 1
disposal groups
const disposables = createDisposables('sample');
disposables.registerGroup('first', {before: DEFAULT_GROUP});
disposables.registerGroup('last', {after: DEFAULT_GROUP});
disposables.registerGroup('beforeDefault', {before: DEFAULT_GROUP, after: 'first'});
disposables.add(() => console.log('first'), 'first');
disposables.add(() => console.log('beforeDefault'), 'beforeDefault');
disposables.add(() => console.log('last'), 'last');
disposables.add(() => console.log('default'));
disposables.dispose();
// first
// beforeDefault
// default
// last