Event loop fazları
- Node.js kursu
- Uzman
- Ders 13/47
- 5 dk
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
// eventLoopPhases fonksiyonu yaz
// altı fazın adlarını dizi olarak döndür
// ' -> ' ile birleştir ve yazdır
// buraya yazÖrnek çözüm
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
function eventLoopPhases() { return ['____', 'pending', 'idle', 'poll', 'check', 'close']; }
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ı |