Iterator.prototype[Symbol.dispose]()
[Symbol.dispose]() 方法是 Iterator 例項的一個方法,它實現了可處置協議,並允許在與 using 語句一起使用時對其進行處置。如果存在,它會呼叫 `this` 的 return() 方法。
語法
js
iterator[Symbol.dispose]()
引數
無。
返回值
無(undefined)。
示例
使用 using 宣告迭代器
Symbol.dispose 方法旨在被 using 宣告自動呼叫。如果你有一個透過呼叫其 next() 方法來手動迭代的迭代器,這將非常有用;如果你使用 for...of 或類似的語句來迭代它,則錯誤處理和清理會自動完成。
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();
規範
| 規範 |
|---|
| ECMAScript 非同步顯式資源管理 # sec-%iteratorprototype%-@@dispose |
瀏覽器相容性
載入中…