CodeBlanks Logo Icon CodeBlanks

setImmediate

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

index.js
// executionOrder fonksiyonu yaz
// ['timer', 'io', 'immediate'] dizisini birleştir
// ' -> ' ile ayır ve yazdır
// buraya yaz

Örnek çözüm

index.js
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

Soru
return ['timer', 'io', 'immediate'].____(' -> ');
Cevap
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.

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