Async iteration
- Node.js kursu
- Orta seviye
- Ders 47/116
- 5 dk
for await...of ile async iteration öğrenirsin.
Async iteration: for await...of
Async iteration, bir async kaynağı sırayla tüketmenin yoludur. for await...of döngüsü, her öğeyi bekleyerek ilerler. Bu, normal for...of'un async sürümüdür.
Bir async iterator üretmenin en kolay yolu async generator'dur: async function* numbers() { yield 1; yield 2; yield 3; }. Bu fonksiyon bir async iterator döndürür. for await (const n of numbers()) { console.log(n); } ile her değeri bekleyerek alırsın. Çıktı: 1, 2, 3. Async generator'ın yield'i bir promise döndürebilir; for await o promise'ı çözer ve değeri verir. Bu, veriyi parça parça akıtmak için idealdir.
Async generator tanımı
Bir async generator async function* ile tanımlanır. yield ile değer üretir. Her yield bir duraklamadır: tüketici bir sonraki değeri isteyene kadar generator bekler.
Örnek: async function* numbers() { yield 1; yield 2; yield 3; }. Bu fonksiyon çağrıldığında bir async iterator döndürür. for await (const n of numbers()) ile her yield'den çıkan değeri alırsın. Async generator'ın güçlü yanı, yield'in bir promise döndürebilmesidir: yield await fetch(url). for await bu promise'ı çözer. Bu, veritabanı sayfalama veya dosya satırları gibi akış kaynaklarını tüketmenin temel aracıdır.
Uygulama Async generator ve for await yaz
async function* numbers() tanımla: yield 1; yield 2; yield 3;. async function main() içinde for await (const n of numbers()) { console.log("Sayı: " + n); } yaz. main() çağır.
Başlangıç kodu
// async generator ile sayılar üret, döngüde tüket
// buraya yazÖrnek çözüm
async function* numbers() {
yield 1;
yield 2;
yield 3;
}
async function main() {
for await (const n of numbers()) {
console.log("Sayı: " + n);
}
}
main();Beklenen çıktı
Sayı: 1 Sayı: 2 Sayı: 3
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 for await...of ne yapar?
for await (const n of numbers()) { console.log(n); }- Diziyi senkron gezer
- Promise oluşturur
- Her öğeyi bekleyerek gezer Doğru cevap
- Döngüyü atlar
Açıklama: for await her öğeyi bekleyerek (await) ilerler.
2 for await satırını tamamla
for ____ (const n of numbers()) { console.log(n); }
for await (const n of numbers()) { console.log(n); }
Açıklama: for await ile async iterator tüketilir.
3 Parçayı rolüne eşle
| Kavram | Anlamı |
|---|---|
async function* |
Async generator tanımlar |
yield |
Değer üretir |
for await |
Async iterator tüketir |
numbers() |
Iterator döndürür |