Spec-Zone.ru › JavaScript

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.asyncDispose
  • await 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

Spec-Zone.ru

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