await
is allowed):async function* gen() { let i = 0; while(true) { yield await new Promise((resolve) => { setTimeout(() => { i++; resolve(i); }, 1000); }); } } const counter = gen(); for await (const value of counter) { console.log(value); } console.log('end');