The Symbol.asyncDispose
static data property represents the well-known symbol Symbol.asyncDispose
. The await using
declaration looks up this symbol on the variable initializer for the method to call when the variable goes out of scope.
The well-known symbol Symbol.asyncDispose
.
An object is async disposable if it has the [Symbol.asyncDispose]()
method. The method is expected to have the following semantics:
[Symbol.asyncDispose]
allows the creation of custom async disposables. See the await using
reference for more information.
class Disposable {
#fileHandle;
#disposed;
constructor(handle) {
this.#disposed = false;
this.#fileHandle = handle;
}
async [Symbol.asyncDispose]() {
await this.#fileHandle.close();
this.disposed = true;
}
get isDisposed() {
return this.disposed;
}
}
const resource = new Disposable(await fs.open("my-file.txt", "r"));
{
await using resourceUsed = resource;
console.log(resource.isDisposed); // false
}
console.log(resource.isDisposed); // true
Specifications Browser compatibility See also
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4