AsyncIterator.prototype[Symbol.asyncDispose]()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
AsyncIterator ã¤ã³ã¹ã¿ã³ã¹ã® [Symbol.asyncDispose]() ã¡ã½ããã¯ãéåæç ´æ£ãããã³ã« ãå®è£
ãã¦ãããawait using ã¨ã¨ãã«ä½¿ç¨ããã¨ãã«ããã®ã¤ã³ã¹ã¿ã³ã¹ãç ´æ£ã§ããããã«ãã¾ãããã®ã¡ã½ããã¯ãthis ã® return() ã¡ã½ãããåå¨ããå ´åããããå¼ã³åºãã¦ãã®çµæãå¾
æ©ãã¾ãã
æ§æ
asyncIterator[Symbol.asyncDispose]()
弿°
ãªãã
è¿å¤
ãªã (undefined)ã
ä¾
>await using ãç¨ããéåæã¤ãã¬ã¼ã¿ã¼ã®å®£è¨
Symbol.asyncDispose ã¡ã½ããã¯ãawait using 宣è¨å
ã§èªåçã«å¼ã³åºããããã¨ãæ³å®ãã¦ãã¾ããããã¯ãnext() ã¡ã½ãããå¼ã³åºãã¦æåã§å復å¦çãè¡ãéåæã¤ãã¬ã¼ã¿ã¼ãããå ´åã«ä¾¿å©ã§ããfor await...of ãªã©ã§å復å¦çãè¡ãå ´åã¯ãã¨ã©ã¼å¦çãã¯ãªã¼ã³ã¢ããã¯èªåçã«è¡ããã¾ãã
async function* generateNumbers() {
try {
yield 1;
yield 2;
yield 3;
} finally {
console.log("Cleaning up");
}
}
async function doSomething() {
await using numbers = generateNumbers();
const res1 = await numbers.next();
// æ®ãã®å¤ã¯å復å¦çãã¦ãã¾ãã
// 颿°ã®çµäºåã«ããã®éåæã¤ãã¬ã¼ã¿ã¼ã¯ç ´æ£ããã¾ã
// ãCleaning upãã¨ãã°ã«åºåããã¾ã
}
doSomething();
仿§æ¸
| Specification |
|---|
| ECMAScript Async Explicit Resource Management> # sec-asyncdisposablestack.prototype-@@asyncDispose> |