Iterator.prototype[Symbol.dispose]()
Khả dụng hạn chế
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Phương thức [Symbol.dispose]() của các thực thể Iterator triển khai giao thức disposable và cho phép nó bị xử lý khi sử dụng với using. Nó gọi phương thức return() của this, nếu nó tồn tại.
Cú pháp
js
iterator[Symbol.dispose]()
Tham số
Không có.
Giá trị trả về
Không có (undefined).
Ví dụ
>Khai báo iterator với using
Phương thức Symbol.dispose được thiết kế để tự động được gọi trong khai báo using. Điều này hữu ích nếu bạn có một iterator mà bạn tự lặp bằng cách gọi phương thức next() của nó; nếu bạn lặp nó với for...of hoặc thứ gì đó tương tự, thì xử lý lỗi và dọn dẹp được thực hiện tự động.
js
function* generateNumbers() {
try {
yield 1;
yield 2;
yield 3;
} finally {
console.log("Cleaning up");
}
}
function doSomething() {
using numbers = generateNumbers();
const res1 = numbers.next();
// Không lặp phần còn lại của các số
// Trước khi hàm thoát, async iterator được xử lý
// In ra "Cleaning up"
}
doSomething();
Đặc điểm kỹ thuật
| Thông số kỹ thuật |
|---|
| ECMAScript Async Explicit Resource Management> # sec-%iteratorprototype%-@@dispose> |