Eşzamansız Yineleyiciler — for await...of ve Eşzamansız Üreteçler
Zaman içinde gelen değerleri tüketmek için eşzamansız üreteçleri ve for await...of'u kullanın. Symbol.asyncIterator'ı ve basit eşzamansız işlem hatlarını öğrenin.
Eşzamansız Yineleyiciler — for await...of ve Eşzamansız Üreteçler, CoddyKit'te ücretsiz bir JavaScript Academy dersidir. Bu, 3 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, JavaScript Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. JavaScript Academy kursu toplamda 3 dersten oluşur.
Neden eşzamansız yineleme?
Hedef: Daha sonra gelebilecek değerleri tüketmek.
- for await...of döngüleri eşzamansız yinelenebilirler üzerinde çalışır
- async function* eşzamansız üreteçler oluşturur
- Symbol.asyncIterator bir nesnenin eşzamansız yinelenebilir olduğunu belirtir
- Küçük bir eşzamansız map örneği

async function* ve for await...of
Eşzamansız bir üreteç (async function*), for await...of tarafından tüketilen değerleri yield ile üretir.
// Use an async generator to yield values (could be delayed in real apps)
(async function () {
async function* countAsync(n) {
for (let i = 1; i <= n; i = i + 1) {
// In real code you could await a delay or I/O here
yield i;
}
}
for await (const x of countAsync(3)) {
console.log("async value:", x);
}
})();
Elle eşzamansız next()
Eşzamansız bir yineleyicideki next(), { value, done } sonucuna çözümlenen bir vaat döndürür.
// Drive an async iterator manually with await it.next()
(async function () {
async function* two() {
yield "A";
yield "B";
}
const it = two();
console.log(await it.next()); // { value: "A", done: false }
console.log(await it.next()); // { value: "B", done: false }
console.log(await it.next()); // { value: undefined, done: true }
})();
Nesnelerde Symbol.asyncIterator
Bir nesnenin for await...of ile çalışmasını sağlamak için eşzamansız bir yineleyici döndüren [Symbol.asyncIterator]() ekleyin.
// Mark a plain object as async-iterable via Symbol.asyncIterator
(async function () {
const AsyncTwice = {
from: function (a, b) {
return {
a: a, b: b,
[Symbol.asyncIterator]: async function () {
let step = 0;
return {
next: async function () {
if (step === 0) { step = 1; return { value: a, done: false }; }
if (step === 1) { step = 2; return { value: b, done: false }; }
return { value: undefined, done: true };
}
};
}
};
}
};
for await (const v of AsyncTwice.from("X", "Y")) {
console.log("from object:", v);
}
})();
Eşzamansız map işlem hattı
Her adımın tamamlanmasını bekleyen küçük işlem hatları oluşturmak için eşzamansız üreteçleri birleştirin.
// Async map: transform values lazily while awaiting work
(async function () {
async function* countAsync(n) {
for (let i = 1; i <= n; i = i + 1) {
yield i;
}
}
async function* asyncMap(iterable, fn) {
for await (const v of iterable) {
// fn can be async; await its result
const out = await fn(v);
yield out;
}
}
const doubled = asyncMap(countAsync(4), async function (x) {
// simulate async transform (no real delay for demo)
return x * 2;
});
const collected = [];
for await (const v of doubled) {
collected.push(v);
}
console.log("doubled async:", collected);
})();
İyi alışkanlıklar
İpuçları:
- for await...of bir eşzamansız yinelenebilir gerektirir (Symbol.asyncIterator).
- Eşzamansız üreteçleri kolayca tanımlamak için async function* kullanın.
- Her next() çağrısı beklenir; duyarlı kalmak için işi küçük tutun.

Eşzamansız yinelenebilirlerin temelleri testi
Hızlı kontrol: Eşzamansız yinelenebilir gereksinimi.

Özet
Özet: Eşzamansız üreteçler oluşturmak için async function* ve yield kullanın. for await...of ile döngü kurun veya next() çağrısını elle bekleyin. Yardımcı üreteçlerle küçük eşzamansız işlem hatları oluşturun.

Yapay zeka eğitmeniyle JavaScript öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 59
- Dersler
- 200
Sıkça Sorulan Sorular
“Eşzamansız Yineleyiciler — for await...of ve Eşzamansız Üreteçler” dersi ücretsiz mi?
Evet — “Eşzamansız Yineleyiciler — for await...of ve Eşzamansız Üreteçler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve JavaScript Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. JavaScript Academy kursu toplamda 3 dersten oluşur.
“Eşzamansız Yineleyiciler — for await...of ve Eşzamansız Üreteçler” dersinde ne öğreneceğim?
Zaman içinde gelen değerleri tüketmek için eşzamansız üreteçleri ve for await...of'u kullanın. Symbol.asyncIterator'ı ve basit eşzamansız işlem hatlarını öğrenin. JavaScript Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
JavaScript Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te JavaScript Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 3 dersinin 3. dersidir.
“Eşzamansız Yineleyiciler — for await...of ve Eşzamansız Üreteçler” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu JavaScript Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her JavaScript Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Yinelemeli Protokol ve for...of
- Üreteç İşlevleri, yield ve Küçük İşlem Hatları
- Eşzamansız Yineleyiciler — for await...of ve Eşzamansız Üreteçler