Baseline Widely available
AsyncGenerator
ãªãã¸ã§ã¯ãã¯éåæã¸ã§ãã¬ã¼ã¿ã¼é¢æ°ããè¿ããããã®ã§ãéåæå復å¯è½ãããã³ã«ã¨éåæã¤ãã¬ã¼ã¿ã¼ãããã³ã«ã®ä¸¡æ¹ãæºãããã®ã§ãã
éåæã¸ã§ãã¬ã¼ã¿ã¼ã¡ã½ããã¯ã常㫠Promise
ãªãã¸ã§ã¯ããçæãã¾ãã
AsyncGenerator
ã¯é ãã¯ã©ã¹ã® AsyncIterator
ã®ãµãã¯ã©ã¹ã§ãã
async function* foo() {
yield await Promise.resolve("a");
yield await Promise.resolve("b");
yield await Promise.resolve("c");
}
let str = "";
async function generate() {
for await (const val of foo()) {
str = str + val;
}
console.log(str);
}
generate();
// Expected output: "abc"
ã³ã³ã¹ãã©ã¯ã¿ã¼
AsyncGenerator
ã³ã³ã¹ãã©ã¯ã¿ã¼ã¯ã°ãã¼ãã«ã«ã¯å©ç¨ã§ãã¾ãããAsyncGenerator
ã®ã¤ã³ã¹ã¿ã³ã¹ã¯ãéåæã¸ã§ãã¬ã¼ã¿ã¼é¢æ°ããè¿ãããå¿
è¦ãããã¾ãã
async function* createAsyncGenerator() {
yield await Promise.resolve(1);
yield await Promise.resolve(2);
yield await Promise.resolve(3);
}
const asyncGen = createAsyncGenerator();
asyncGen.next().then((res) => console.log(res.value)); // 1
asyncGen.next().then((res) => console.log(res.value)); // 2
asyncGen.next().then((res) => console.log(res.value)); // 3
å®éãAsyncGenerator
ã³ã³ã¹ãã©ã¯ã¿ã¼ã«å¯¾å¿ããJavaScriptã®ã¨ã³ãã£ãã£ã¯ããã¾ãããéåæã¸ã§ãã¬ã¼ã¿ã¼é¢æ°ã«ãã£ã¦çæããããã¹ã¦ã®ãªãã¸ã§ã¯ãã«ãã£ã¦å
±æããããããã¿ã¤ããªãã¸ã§ã¯ãã§ããé ããªãã¸ã§ã¯ããããã ãã§ãããã®ãªãã¸ã§ã¯ãã¯ã¯ã©ã¹ã®ããã«è¦ããããã« AsyncGenerator.prototype
ã¨ããã¹ã¿ã¤ã«ã§å¼ã°ãããã¨ãå¤ãã®ã§ãããAsyncGeneratorFunction.prototype.prototype
ã¨å¼ã¶ã»ããé©åã§ãããããªããªã AsyncGeneratorFunction
ã¯å®éã® JavaScript ã¨ã³ãã£ãã£ã§ããããã§ãã
ãããã®ããããã£ã¯ AsyncGenerator.prototype
ã§å®ç¾©ããã¦ããããã¹ã¦ã® AsyncGenerator
ã¤ã³ã¹ã¿ã³ã¹ã§å
±æããã¦ãã¾ãã
AsyncGenerator.prototype.constructor
ã¤ã³ã¹ã¿ã³ã¹ãªãã¸ã§ã¯ãã使ããã³ã³ã¹ãã©ã¯ã¿ã¼é¢æ°ãAsyncGenerator
ã¤ã³ã¹ã¿ã³ã¹ã®å ´åãåæå¤ã¯ AsyncGeneratorFunction.prototype
ã§ãã
ã¡ã¢: AsyncGenerator
ã¯çæããéåæã¸ã§ãã¬ã¼ã¿ã¼é¢æ°ãæ ¼ç´ãã¦ããããã§ã¯ããã¾ããã
AsyncGenerator.prototype[Symbol.toStringTag]
@@toStringTag
ããããã£ã®åæå¤ã¯ãæåå "AsyncGenerator"
ã§ãããã®ããããã£ã¯ Object.prototype.toString()
ã§ä½¿ç¨ããã¾ãã
親ã§ãã AsyncIterator
ããã¤ã³ã¹ã¿ã³ã¹ã¡ã½ãããç¶æ¿ãã¦ãã¾ãã
AsyncGenerator.prototype.next()
Promise
ãè¿ãã¾ããããã¯ãyield
å¼ã§è¿ãããæå®ãããå¤ã§è§£æ±ºããã¾ãã
AsyncGenerator.prototype.return()
ã¸ã§ãã¬ã¼ã¿æ¬ä½ã«ç¾å¨ã®åæ¢ä½ç½®ã« return
æãæ¿å
¥ãããã®ããã«åä½ãã¾ããtry...finally
ãããã¯ã¨çµã¿åãããã¨ã¸ã§ãã¬ã¼ã¿ã¼ãçµäºããã¯ãªã¼ã³ã¢ããã¿ã¹ã¯ãå®è¡ãããã¨ãã§ãã¾ãã
AsyncGenerator.prototype.throw()
ã¸ã§ãã¬ã¼ã¿ã¼æ¬ä½ã®ç¾å¨ã®åæ¢ä½ç½®ã« throw
æãæ¿å
¥ããããã®ããã«åä½ãã¾ããããã¯ãã¸ã§ãã¬ã¼ã¿ã¼ã«ã¨ã©ã¼ç¶æ
ãéç¥ããã¨ã©ã¼ãå¦çããããã¯ãªã¼ã³ã¢ãããå®è¡ãã¦èªèº«ãçµäºããããã¨ãã§ãã¾ãã
次ã®ä¾ã§ã¯ãéåæã¸ã§ãã¬ã¼ã¿ã¼ãå復å¦çããæéééãçããªããã¨ã« 1ï½6 ã®å¤ãã³ã³ã½ã¼ã«ã«åºåãã¦ãã¾ããæå»ãå¤ãããã³ã«ãããã¹ãçæããã¾ããããã㯠for await...of
ã«ã¼ãã®ä¸ã§èªåçã«è§£æ±ºããããã¨ã«æ³¨æãã¦ãã ããã
// éåæã¿ã¹ã¯ã§ããå®éã«ã¯ãã£ã¨æçãªãã¨ã使ç¨ãã¦ãããã¨ã
// æ³å®ãã¦ãã ããã
function delayedValue(time, value) {
return new Promise((resolve /*, reject*/) => {
setTimeout(() => resolve(value), time);
});
}
async function* generate() {
yield delayedValue(2000, 1);
yield delayedValue(100, 2);
yield delayedValue(500, 3);
yield delayedValue(250, 4);
yield delayedValue(125, 5);
yield delayedValue(50, 6);
console.log("All done!");
}
async function main() {
for await (const value of generate()) {
console.log("value", value);
}
}
main().catch((e) => console.error(e));
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4