Menu
CoddyTech

Olay Döngüsü

Coddy'nin Node.js Journey'sinin Node.js Temelleri bölümünün bir parçası. Ders 18 / 24.

Geri çağırımlar ve promise'ler daha sonra çalışır ve hatalar tam olarak ne zaman çalıştıklarını bilmemekten kaynaklanır.

Node önce tüm eşzamanlı kodu sonuna kadar çalıştırır. Ardından mikro görevleri çalıştırır: promise geri çağırımları ve queueMicrotask'e geçirilen işlevler. Ancak bundan sonra zamanlayıcılar gelir; setTimeout(fn, 0) bile yalnızca süresi dolduğunda çalışır.

setTimeout(() => console.log('C timer'), 0);
Promise.resolve().then(() => console.log('B promise'));
console.log('A sync');
// A sync, B promise, C timer

0 gecikme, mikro görevlerden sonra mümkün olan en kısa sürede çalışmak anlamına gelir; hiçbir zaman onlardan önce değil. Zamanlayıcılar gecikme sürelerine göre sırayla çalışır; gecikmeler eşitse önce ayarlanan zamanlayıcı önce çalışır.

challenge icon

Görev

Kolay
  • order.js, 1 sync, 2 microtask, 3 timeout, 4 timeout later çıktısını bu sırayla verir.
  • Dört satırı yerlerinde bırak. Bunları bir queueMicrotask ve iki setTimeout çağrısıyla sar.

node order.js komutunu çalıştır ve tahmininle karşılaştır. Ardından her iki zamanlayıcıya da 0 gecikme ver ve yeniden çalıştır.

Kendin dene

// Bu satırların yerlerini değiştirmeden numara sırasına göre yazdırılmasını sağlayın.
// Bunun yerine onları queueMicrotask ve setTimeout içine alın.
console.log('4 timeout later');
console.log('3 timeout');
console.log('2 microtask');
console.log('1 sync');
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Node.js Temelleri bölümündeki tüm dersler