Node.js
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.
Örnek çözümü göster
async function* numbers() {
yield 1;
yield 2;
yield 3;
}
async function main() {
for await (const n of numbers()) {
console.log("Sayı: " + n);
}
}
main();
Kendini test et
-
for await...of ne yapar?
for await (const n of numbers()) { console.log(n); }
- Diziyi senkron gezer
- Promise oluşturur
- Her öğeyi bekleyerek gezer
- Döngüyü atlar
Cevabı göster
Her öğeyi bekleyerek gezer — for await her öğeyi bekleyerek (await) ilerler.
-
for await satırını tamamla
for ____ (const n of numbers()) { console.log(n); }
Cevabı göster
for await (const n of numbers()) { console.log(n); }
-
Parçayı rolüne eşle
- async function*
- Async generator tanımlar
- yield
- Değer üretir
- for await
- Async iterator tüketir
- numbers()
- Iterator döndürür
Sıradaki ders: Async generators