This feature is not Baseline because it does not work in some of the most widely-used browsers.
The use() method of AsyncDisposableStack instances registers a value that implements the async disposable protocol to the stack.
See DisposableStack.prototype.use() for general information about the use() method.
use(value)
valueThe value to register to the stack. Must either contain a [Symbol.asyncDispose]() or [Symbol.dispose]() method, or be null or undefined.
The same value that was passed in.
TypeErrorThrown if value is not null or undefined, and does not contain a [Symbol.asyncDispose]() or [Symbol.dispose]() method.
ReferenceErrorThrown if the stack is already disposed.
This function reads a file (as a Node.js FileHandle) and returns its contents. The file handle is automatically closed when the function completes, given that the FileHandle class implements a [Symbol.asyncDispose]() method that asynchronously closes the file.
async function readFileContents(path) {
await using disposer = new AsyncDisposableStack();
const handle = disposer.use(await fs.open(path));
const data = await handle.read();
return data;
// The disposer is disposed here, which causes handle to be closed too
}
| Desktop | Mobile | Server | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
use |
134 | 134 | 141 | 119 | No | 134 | 141 | 88 | No | 29.0 | 134 | No | 1.3.0 | 2.2.10 | 24.0.0 |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AsyncDisposableStack/use