CodeBlanks Logo Icon CodeBlanks

Async iteration

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

index.js
// async generator ile sayılar üret, döngüde tüket
// buraya yaz

Örnek çözüm

index.js
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?

index.js
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

Soru
for ____ (const n of numbers()) { console.log(n); }
Cevap
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

Orta seviye bölümündeki tüm dersler