AsyncIterator.prototype[Symbol.asyncDispose]()
Базовая поддержка ограниченная доступность
Эта функция не является базовой, поскольку она не работает в некоторых из наиболее широко используемых браузеров.
Метод [Symbol.asyncDispose]() экземпляров AsyncIterator реализует протокол асинхронного управления ресурсами и позволяет освобождать ресурс при использовании с await using. Он вызывает и ожидает метод return() this, если он существует.
Синтаксис
asyncIterator[Symbol.asyncDispose]()
Параметры
Нет.
Возвращаемое значение
Нет (undefined).
Примеры
Объявление асинхронного итератора с помощью await using
Метод Symbol.asyncDispose предназначен для автоматического вызова в объявлении await using. Это полезно, если у вас есть асинхронный итератор, который вы вручную перебираете, вызывая его метод next(); если вы перебираете его с помощью for await...of или аналогичного, то обработка ошибок и очистка выполняются автоматически.
async function* generateNumbers() {
try {
yield 1;
yield 2;
yield 3;
} finally {
console.log("Cleaning up");
}
}
async function doSomething() {
await using numbers = generateNumbers();
const res1 = await numbers.next();
// Not iterating the rest of the numbers
// Before the function exits, the async iterator is disposed
// Logs "Cleaning up"
}
doSomething();
Спецификации
| Спецификация |
|---|
| ECMAScript Async Explicit Resource Management # sec-asyncdisposablestack.prototype-@@asyncDispose |
Совместимость с браузерами
| Настольные компьютеры | Мобильные устройства | Сервер | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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 | |
@@asyncDispose |
134 |
134 |
141 |
119 |
preview |
134 |
141 |
88 |
Нет |
29.0 |
134 |
Нет |
1.3.0 |
2.2.10 |
Нет |
См. также
- Polyfill для
AsyncIterator.prototype[Symbol.asyncDispose]вcore-js - Управление ресурсами в JavaScript
Symbol.asyncDisposeawait using
© 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/AsyncIterator/Symbol.asyncDispose