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();
Спецификации
Совместимость с браузерами
| Десктопные | Мобильные | Серверные | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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.disposeusing
© 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