Async Generator in TypeScript
type Person = {
name: string;
title: string;
}
let items: Person[] = [
{
name: "Bing Bong",
title: "The Archer"
},
{
name: "Hector",
title: "The well endowed"
},
{
name: "Brutalitops",
title: "The Magician"
}
];
async function* getItems(): AsyncGenerator<Person> {
for (let item of items) {
await new Promise(r => setTimeout(r, 4000));
yield item;
}
}
async function renderOverTime() {
for await (let item of getItems()) {
console.log(`${item.name} ${new Date().toLocaleTimeString()}`);
}
}
renderOverTime();