Explicit resource management
The using
and await using
declarations and the dispose
and asyncDispose
symbols manage the lifecycle of resources such as file handles and streams. The DisposableStack
and AsyncDisposableStack
objects can group, dispose, and coordinate dependencies between multiple disposable resources.
Status
Limited availability
MDN documentation
- AsyncDisposableStack
- AsyncDisposableStack.prototype[Symbol.asyncDispose]()
- AsyncDisposableStack() constructor
- AsyncDisposableStack.prototype.adopt()
- AsyncDisposableStack.prototype.defer()
- AsyncDisposableStack.prototype.disposeAsync()
- AsyncDisposableStack.prototype.disposed
- AsyncDisposableStack.prototype.move()
- AsyncDisposableStack.prototype.use()
- AsyncIterator.prototype[Symbol.asyncDispose]()
- DisposableStack
- DisposableStack.prototype[Symbol.dispose]()
- DisposableStack() constructor
- DisposableStack.prototype.adopt()
- DisposableStack.prototype.defer()
- DisposableStack.prototype.dispose()
- DisposableStack.prototype.disposed
- DisposableStack.prototype.move()
- DisposableStack.prototype.use()
- Iterator.prototype[Symbol.dispose]()
- SuppressedError
- SuppressedError() constructor
- SuppressedError: error
- SuppressedError: suppressed
- Symbol.asyncDispose
- Symbol.dispose
- await using
- using
Specifications
- ECMAScript Async Explicit Resource Management, from TC39 (Ecma International).
Browser support
- Chrome 134 Released on 2025-03-04
- Chrome Android 134 Released on 2025-03-04
- Edge 134 Released on 2025-03-06
- Firefox 141 Released on 2025-07-22
- Firefox for Android 141 Released on 2025-07-22
- Safari ❌
- Safari on iOS ❌
Baseline availability blocked since July 2025 by Safari (1 months)
View as JSON | Edit this feature | Report an issue | Web-features entry: source, dist