Spec-Zone.ru › JavaScript

Iterator.prototype[Symbol.dispose]()

Базовый уровень Ограниченная доступность

Эта функция не относится к Базовому уровню, так как она не работает в некоторых из наиболее широко используемых браузеров.

Метод [Symbol.dispose]() экземпляров Iterator реализует протокол удаления (disposable protocol) и позволяет удалить его при использовании с using. Он вызывает метод return() this, если он существует.

Синтаксис

iterator[Symbol.dispose]()

Параметры

Нет.

Возвращаемое значение

Нет (undefined).

Примеры

Объявление итератора с помощью using

Метод Symbol.dispose предназначен для автоматического вызова в объявлении using. Это полезно, если у вас есть итератор, который вы вручную перебираете, вызывая его метод next(); если вы перебираете его с помощью for...of или чего-то подобного, то обработка ошибок и очистка выполняются автоматически.

function* generateNumbers() {
  try {
    yield 1;
    yield 2;
    yield 3;
  } finally {
    console.log("Cleaning up");
  }
}

function doSomething() {
  using numbers = generateNumbers();
  const res1 = 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-%iteratorprototype%-@@dispose

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

Десктопные Мобильные Серверные
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
@@dispose
134
134
141
119
preview
134
141
88
No
29.0
134
No
1.3.0
2.2.10
No

Смотрите также

  • Полифил Iterator.prototype[Symbol.dispose] в core-js
  • Управление ресурсами в JavaScript
  • Symbol.dispose
  • 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/Iterator/Symbol.dispose

Spec-Zone.ru

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