AsyncIterator
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2020å¹´1æ.
* Some parts of this feature may have varying levels of support.
AsyncIterator ãªãã¸ã§ã¯ã㯠éåæã¤ãã¬ã¼ã¿ã¼ãããã³ã« ã«æºæ ãããªãã¸ã§ã¯ãã§ã next() ã¡ã½ãããæä¾ãããã¨ã§ã¤ãã¬ã¼ã¿ã¼ã®çµæãªãã¸ã§ã¯ãã«å±¥è¡ããããããã¹ãè¿ãã¾ãã AsyncIterator.prototype ãªãã¸ã§ã¯ãã¯ããã¹ã¦ã®çµã¿è¾¼ã¿éåæã¤ãã¬ã¼ã¿ã¼ãç¶æ¿ããé表示ã®ã°ãã¼ãã«ãªãã¸ã§ã¯ãã§ããããã¯ãéåæã¤ãã¬ã¼ã¿ã¼ãªãã¸ã§ã¯ãèªèº«ãè¿ã @@asyncIterator ã¡ã½ãããæä¾ããéåæã¤ãã¬ã¼ã¿ã¼ãéåæå復å¯è½ã«ããã¾ãã
ãªããAsyncIterator ã¯ã°ãã¼ãã«ãªãã¸ã§ã¯ãã§ã¯ããã¾ããããå°æ¥çã«ã¯ async iterator helpers proposal ã§ã°ãã¼ãã«ãªãã¸ã§ã¯ãã«ãªãäºå®ã§ãããã¹ã¦ã®çµã¿è¾¼ã¿éåæã¤ãã¬ã¼ã¿ã¼ã§å
±æããã AsyncIterator.prototype ãªãã¸ã§ã¯ãã¯ä»¥ä¸ã®ã³ã¼ãã§åå¾ã§ãã¾ãã
const AsyncIteratorPrototype = Object.getPrototypeOf(
Object.getPrototypeOf(Object.getPrototypeOf((async function* () {})())),
);
解説
ç¾å¨ã JavaScript ã®çµã¿è¾¼ã¿éåæã¤ãã¬ã¼ã¿ã¼ã¯ãéåæã¸ã§ãã¬ã¼ã¿ã¼é¢æ°ãè¿ã AsyncGenerator ãªãã¸ã§ã¯ãã ãã§ããã¦ã§ã API ã«ã¯ä»ã«ã ReadableStream ã®ãããªçµã¿è¾¼ã¿ã®éåæã¤ãã¬ã¼ã¿ã¼ãããã¾ãã
ãããã®éåæã¤ãã¬ã¼ã¿ã¼ã¯ããããåå¥ã®ãããã¿ã¤ããªãã¸ã§ã¯ããæã£ã¦ãããç¹å®ã®éåæã¤ãã¬ã¼ã¿ã¼ã使ç¨ãã next() ã¡ã½ãããå®ç¾©ãã¦ãã¾ãããããã®ãããã¿ã¤ããªãã¸ã§ã¯ãã¯ãã¹ã¦ AsyncIterator.prototype ãç¶æ¿ãã¦ãã¾ããããã¯éåæã¤ãã¬ã¼ã¿ãªãã¸ã§ã¯ãèªèº«ãè¿ã @@asyncIterator ã¡ã½ãããæä¾ããéåæã¤ãã¬ã¼ã¿ã¼ãéåæå復å¯è½ã«ããã¾ãã
ã¡ã¢:
AsyncIterator.prototype 㯠@@iterator ãå®è£
ãã¦ããªãã®ã§ãéåæã¤ãã¬ã¼ã¿ã¼ã¯æ¢å®ã§ã¯åæå復å¯è½ã§ã¯ããã¾ããã
ã¤ã³ã¹ã¿ã³ã¹ã¡ã½ãã
AsyncIterator.prototype[Symbol.asyncIterator]()-
éåæã¤ãã¬ã¼ã¿ã¼ãªãã¸ã§ã¯ãèªèº«ãè¿ãã¾ããããã«ãããéåæã¤ãã¬ã¼ã¿ã¼ãªãã¸ã§ã¯ããéåæå復å¯è½ãªãã¸ã§ã¯ãã«ãªãã¾ãã
ä¾
>éåæã¤ãã¬ã¼ã¿ã¼ãéåæå復å¯è½ã¨ãã¦ä½¿ç¨
ãã¹ã¦ã®çµã¿è¾¼ã¿éåæã¤ãã¬ã¼ã¿ã¼ãéåæå復å¦çå¯è½ãªãã¸ã§ã¯ããªã®ã§ãfor await...of ã«ã¼ãã§ä½¿ç¨ãããã¨ãã§ãã¾ãã
const asyncIterator = (async function* () {
yield 1;
yield 2;
yield 3;
})();
(async () => {
for await (const value of asyncIterator) {
console.log(value);
}
})();
// ãã°: 1, 2, 3
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-asynciteratorprototype> |