setImmediate
- Node.js kursu
- Uzman
- Ders 17/47
- 5 dk
setImmediate ve check fazını öğrenirsin.
setImmediate
setImmediate, bir geri çağrıyı check fazında çalıştırır. setTimeout(fn, 0) ile benzer ama farklı fazlarda çalışırlar. I/O döngüsünde setImmediate her zaman setTimeout'tan önce çalışır.
Bir executionOrder() fonksiyonu bu sırayı modeller: ['timer', 'io', 'immediate'].join(' -> ') 'timer -> io -> immediate' döndürür. Bu, bir turda fazların sırasını sabit bir dizeyle gösterir: önce timer (setTimeout), sonra I/O (poll), sonra immediate (setImmediate). Çıktı timer -> io -> immediate olur. Gerçek Node.js'te I/O döngüsünde bu sıra tutarlıdır; setImmediate, I/O bittikten hemen sonra check fazında çalışır. Model deterministiktir.
check fazı
setImmediate çağrıları check fazında çalışır. Bu faz, poll'dan hemen sonra gelir. Bir I/O işlemi bittiğinde event loop poll'dan check'e geçer; böylece setImmediate callback'i I/O callback'inden hemen sonra çalışır.
Örnek: executionOrder() 'timer -> io -> immediate' döndürür. Bu dizede io poll fazını, immediate check fazını temsil eder. Sıra şudur: timer (setTimeout) → I/O (poll) → immediate (setImmediate). setImmediate'in setTimeout(fn, 0)'dan sonra görünmesi kafa karıştırıcı olabilir; ama I/O döngüsünde setImmediate her zaman önce çalışır çünkü check fazı, bir sonraki timers fazından önce gelir. Çıktı deterministiktir.
Uygulama Yürütme sırasını yaz
function executionOrder() yaz. return ['timer', 'io', 'immediate'].join(' -> ') ile döndür. console.log(executionOrder()) yazdır.
Başlangıç kodu
// executionOrder fonksiyonu yaz
// ['timer', 'io', 'immediate'] dizisini birleştir
// ' -> ' ile ayır ve yazdır
// buraya yazÖrnek çözüm
function executionOrder() {
return ['timer', 'io', 'immediate'].join(' -> ');
}
console.log(executionOrder());Beklenen çıktı
timer -> io -> immediate
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 join çağrısını tamamla
return ['timer', 'io', 'immediate'].____(' -> ');
return ['timer', 'io', 'immediate'].join(' -> ');
Açıklama: join diziyi dizeye birleştirir.
2 Kavramı açıklamasına eşle
| Kavram | Anlamı |
|---|---|
setImmediate |
check fazında çalışır |
check |
poll'dan sonraki faz |
setTimeout |
timers fazında çalışır |
poll |
I/O olaylarını işler |
3 setImmediate callback'i hangi fazda çalışır?
- timers
- check Doğru cevap
- poll
- close
Açıklama: setImmediate check fazında çalışır.