AsyncDisposableStack.prototype.use()
Базовая Ограниченная доступность
Эта функция не является базовой, поскольку она не работает в некоторых наиболее широко используемых браузерах.
Метод use() экземпляров AsyncDisposableStack регистрирует значение, которое реализует протокол асинхронного удаления ресурсов в стеке.
См. DisposableStack.prototype.use() для получения общей информации о методе use().
Синтаксис
use(value)
Параметры
-
value - Значение для регистрации в стеке. Должно либо содержать метод
[Symbol.asyncDispose]()или[Symbol.dispose](), либо бытьnullилиundefined.
Возвращаемое значение
Тот же value, который был передан.
Исключения
-
TypeError - Выбрасывается, если
valueне являетсяnullилиundefined, и не содержит метода[Symbol.asyncDispose]()или[Symbol.dispose](). -
ReferenceError - Выбрасывается, если стек уже удален.
Примеры
Использование use()
Эта функция считывает файл (как FileHandle Node.js) и возвращает его содержимое. Дескриптор файла автоматически закрывается, когда функция завершается, при условии, что класс FileHandle реализует метод [Symbol.asyncDispose](), который асинхронно закрывает файл.
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
}
Спецификации
Совместимость с браузерами
| Настольные | Мобильные | Серверные | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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 |
preview |
134 |
141 |
88 |
No |
29.0 |
134 |
No |
1.3.0 |
2.2.10 |
24.0.0 |
См. также
- Управление ресурсами JavaScript
AsyncDisposableStackAsyncDisposableStack.prototype.adopt()AsyncDisposableStack.prototype.defer()
© 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