クリックして開く
Generator Function
はfor of
を使ってもnext()
のような挙動をとります。Generator Function
内でreturn
するとGenerator Function
が機能しなくなります。
クリックして開く
function delay(ms, value) {
return new Promise((resolve) => setTimeout(() => resolve(value), ms));
}
async function* delayGenerator() {
yield await delay(2000, "開始");
yield await delay(1000, "中間");
yield await delay(1000, "終わり");
return;
}
async function main() {
const delayGen = delayGenerator();
for await (const value of delayGen) {
console.log(value);
}
}
main();