AsyncDisposableStack.prototype.defer()
En esta página
The defer() method of {{jsxref("AsyncDisposableStack")}} instances takes a callback function to be called and awaited when the stack is disposed.
See {{jsxref("DisposableStack.prototype.defer()")}} for general information about the defer() method.
Syntax#
defer(onDispose)
Parameters#
onDispose- : A function that will be called when the stack is disposed. The function receives no arguments and can return a promise which gets awaited.
Return value#
None ({{jsxref("undefined")}}).
Exceptions#
- {{jsxref("TypeError")}}
- : Thrown if
onDisposeis not a function. - {{jsxref("ReferenceError")}}
- : Thrown if the stack is already disposed.
Examples#
Using defer()#
One use case of defer() is to do something unrelated to resource freeing during scope exit, such as logging a message.
async function doSomething() {
await using disposer = new AsyncDisposableStack();
disposer.defer(async () => {
await fs.writeFile("log.txt", "All resources freed successfully");
});
// Other code that claims and frees more data
}
Specifications#
{{Specifications}}
Browser compatibility#
{{Compat}}
See also#
- JavaScript resource management
- {{jsxref("AsyncDisposableStack")}}
- {{jsxref("AsyncDisposableStack.prototype.adopt()")}}
- {{jsxref("AsyncDisposableStack.prototype.use()")}}