AsyncDisposableStack.prototype.defer()
Базовый уровень Ограниченная доступность
Эта функция не относится к Базовому уровню, так как она не работает в некоторых из наиболее широко используемых браузеров.
Метод defer() экземпляров AsyncDisposableStack принимает функцию обратного вызова, которая будет вызвана и ожидаема при уничтожении стека.
См. DisposableStack.prototype.defer() для получения общей информации о методе defer().
Синтаксис
defer(onDispose)
Параметры
-
onDispose - Функция, которая будет вызвана при уничтожении стека. Функция не принимает аргументов и может вернуть промис, который будет ожидаться.
Возвращаемое значение
Нет (undefined).
Исключения
-
TypeError - Выбрасывается, если
onDisposeне является функцией. -
ReferenceError - Выбрасывается, если стек уже уничтожен.
Примеры
Использование defer()
Один из вариантов использования defer() — выполнение действий, не связанных с освобождением ресурсов, при выходе из области видимости, например, запись сообщения в журнал.
async function doSomething() {
await using disposer = new AsyncDisposableStack();
disposer.defer(async () => {
await fs.writeFile("log.txt", "All resources freed successfully");
});
// Other code that claims and frees more data
}
Спецификации
| Спецификация |
|---|
| ECMAScript Async Explicit Resource Management # sec-asyncdisposablestack.prototype.defer |
Совместимость с браузерами
| Десктопные | Мобильные | Серверные | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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 | |
defer |
134 |
134 |
141 |
119 |
preview |
134 |
141 |
88 |
Нет |
29.0 |
134 |
Нет |
1.3.0 |
2.2.10 |
24.0.0 |
См. также
- Управление ресурсами JavaScript
AsyncDisposableStackAsyncDisposableStack.prototype.adopt()AsyncDisposableStack.prototype.use()
© 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/defer