CodeBlanks Logo Icon CodeBlanks

I/O callbacks

I/O callback'leri ve poll fazını öğrenirsin.

I/O callbacks

I/O callbacks, dosya ve ağ işlemleri bittiğinde çalışan geri çağrılardır. poll fazında event loop, tamamlanmış I/O olaylarını toplar ve geri çağrılarını çalıştırır. fs.readFile bittiğinde callback'i burada çalışır.

Bir ioCallbacks(events) fonksiyonu bu fazı modeller: [{name: 'read'}, {name: 'write'}] girdisini 'read,write' döndürür. events.map(e => e.name) ile her olayın adını alır, .join(',') ile birleştirir. Bu, poll fazının I/O olaylarını sırayla işlediğini gösterir. Çıktı read,write olur. Gerçek Node.js'te bu geri çağrılar libuv tarafından kuyruğa eklenir; event loop poll fazında hepsini boşaltır. Model deterministiktir; zamanlama belirsizliği yoktur.

Olay adlarını çıkarma

Bu derste ioCallbacks fonksiyonunu yazacağız. Fonksiyon bir olay dizisi alır, her olayın name özelliğini çıkarır, virgülle birleştirir. Bu, poll fazının I/O olaylarını sırayla işlediğini modeller.

Örnek: events.map(e => e.name) ['read', 'write'] verir. .join(',') ile 'read,write' olur. console.log(ioCallbacks([{name: 'read'}, {name: 'write'}])) read,write yazdırır. map her öğeyi dönüştürür; burada nesneden ad dizesine. join diziyi dizeye birleştirir. Bu iki metot, poll fazının çıktısını özetlemek için yaygın bir desen oluşturur. Çıktı deterministiktir.

Uygulama I/O callback fonksiyonu yaz

function ioCallbacks(events) yaz. return events.map(e => e.name).join(',') ile döndür. console.log(ioCallbacks([{name: 'read'}, {name: 'write'}])) yazdır.

Başlangıç kodu

index.js
// ioCallbacks fonksiyonu yaz
// her olayın adını al
// virgülle birleştir ve yazdır
// [{name: 'read'}, {name: 'write'}] ile çağır
// buraya yaz

Örnek çözüm

index.js
function ioCallbacks(events) {
  return events.map(e => e.name).join(',');
}
console.log(ioCallbacks([{name: 'read'}, {name: 'write'}]));

Beklenen çıktı

read,write

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 fs.readFile'in callback'i hangi fazda çalışır?

  • poll Doğru cevap
  • timers
  • check
  • close

Açıklama: I/O callback'leri poll fazında çalışır.

2 Kavramı açıklamasına eşle

Kavram Anlamı
poll fazı I/O olaylarını işler
map Her öğeyi dönüştürür
join Diziyi dizeye birleştirir
fs.readFile Dosya okuma I/O'şu

3 map çağrısını tamamla

Soru
return events.____(e => e.name).join(',');
Cevap
return events.map(e => e.name).join(',');

Açıklama: map her olayı adına dönüştürür.

Uzman bölümündeki tüm dersler