CodeBlanks Logo Icon CodeBlanks

Event loop fazları

Event loop fazlarını (poll, check, close) öğrenirsin.

Event loop fazları

Node.js event loop'u altı fazdan oluşur: timers (zamanlayıcılar), pending callbacks (bekleyen geri çağrılar), idle/prepare (boş bekleyiş), poll (I/O olayları), check (setImmediate) ve close (kapanış). Her turda loop bu fazları sırayla gezer.

Bir eventLoopPhases() fonksiyonu bu sırayı modeller: ['timers', 'pending', 'idle', 'poll', 'check', 'close'] döndürür. timers fazında setTimeout geri çağrıları çalışır. poll fazında I/O olayları işlenir. check fazında setImmediate çağrıları çalışır. Faz sırasını bilmek, bir callback'in ne zaman çalışacağını anlamanın anahtarıdır. Çıktı timers -> pending -> idle -> poll -> check -> close olur.

Faz sırası

Event loop her turda fazları sabit sırayla gezer. timers ile başlar, close ile biter; sonra yeni tür başlar. Bu sıra, farklı callback türlerinin çalışma önceliğini belirler.

Örnek: eventLoopPhases() ['timers', 'pending', 'idle', 'poll', 'check', 'close'] döndürür. .join(' -> ') ile tek dize yapılır: timers -> pending -> idle -> poll -> check -> close. Bu sırayı bilmek, neden setTimeout geri çağrısının setImmediate'ten önce (aynı gecikmede) çalıştığını açıklar: timers fazı check fazından önce gelir. Faz sırası, event loop'un iskeletidir.

Uygulama Faz sırasını yaz

function eventLoopPhases() yaz. ['timers', 'pending', 'idle', 'poll', 'check', 'close'] döndür. console.log(eventLoopPhases().join(' -> ')) yazdır.

Başlangıç kodu

index.js
// eventLoopPhases fonksiyonu yaz
// altı fazın adlarını dizi olarak döndür
// ' -> ' ile birleştir ve yazdır
// buraya yaz

Örnek çözüm

index.js
function eventLoopPhases() {
  return ['timers', 'pending', 'idle', 'poll', 'check', 'close'];
}
console.log(eventLoopPhases().join(' -> '));

Beklenen çıktı

timers -> pending -> idle -> poll -> check -> close

Soru ve cevaplar

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

1 setTimeout geri çağrıları hangi fazda çalışır?

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

Açıklama: setTimeout geri çağrıları timers fazında çalışır.

2 İlk fazın adını yaz

Soru
function eventLoopPhases() { return ['____', 'pending', 'idle', 'poll', 'check', 'close']; }
Cevap
function eventLoopPhases() { return ['timers', 'pending', 'idle', 'poll', 'check', 'close']; }

Açıklama: timers event loop'un ilk fazıdır.

3 Fazı rolüne eşle

Kavram Anlamı
timers setTimeout geri çağrıları
poll I/O olayları
check setImmediate
close Kapanış geri çağrıları

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