Iterator.prototype[Symbol.dispose]()
The [Symbol.dispose]()
method of Iterator
instances implements the disposable protocol and allows it to be disposed when used with using
. It calls the return()
method of this
, if it exists.
Syntax
js
iterator[Symbol.dispose]()
Parameters
None.
Return value
None (undefined
).
Examples
Declaring an iterator with using
The Symbol.dispose
method is intended to be automatically called in a using
declaration. This is useful if you have an iterator that you manually iterate over by calling its next()
method; if you iterate it with for...of
or something similar, then error handling and cleanup is done automatically.
js
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();
Specifications
No specification found
No specification data found for javascript.builtins.Iterator.@@dispose
.
Check for problems with this page or contribute a missing spec_url
to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.