Spec-Zone.ru › JavaScript

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
}

Спецификации

Спецификация
ECMAScript Async Explicit Resource Management
# sec-asyncdisposablestack.prototype.use

Совместимость с браузерами

Настольные Мобильные Серверные
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
  • AsyncDisposableStack
  • AsyncDisposableStack.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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API