CodeBlanks Logo Icon CodeBlanks

Microtask

Microtask ve nextTick öğrenirsin.

Microtask

Microtask'ler, event loop fazları arasında çalışan küçük görevlerdir. İki türü vardır: process.nextTick ve Promise geri çağrıları. nextTick her zaman Promise'lerden önce çalışır.

Bir microtaskOrder(tasks) fonksiyonu bu önceliği modeller: ['nextTick', 'promise'] dizisini 'nextTick -> promise' dizesine çevirir. Gerçek Node.js'te her faz bitince microtask kuyruğu boşaltılır; nextTick kuyruğu önce, promise kuyruğu sonra. Bu yüzden process.nextTick(() => ...) ile Promise.resolve().then(() => ...) birlikte kullanılırsa nextTick önce çalışır. Çıktı nextTick -> promise olur; bu sıra her zaman böyledir.

nextTick önceliği

Microtask sırasını bir fonksiyonla modelleyebiliriz. microtaskOrder(['nextTick', 'promise']) 'nextTick -> promise' döndürür. Bu, nextTick'in her zaman önce çalıştığını sabit bir dizeyle gösterir.

Fonksiyon basittir: return tasks.join(' -> '). tasks dizisi zaten doğru sıradadır (nextTick önce). Çıktı nextTick -> promise olur. Gerçek Node.js'te bu sıra microtask kuyruğunun boşaltılma düzeninden gelir: nextTick kuyruğu tamamen boşaltılır, sonra promise kuyruğu. Bu model, sıralamayı deterministik bir dizeyle görselleştirir; zamanlayıcı belirsizliği yoktur. nextTick'in Promise'ten önce çalıştığı gerçeği böylece sabitlenir.

Uygulama Microtask sırasını yaz

function microtaskOrder(tasks) yaz. return tasks.join(' -> ') ile döndür. console.log(microtaskOrder(['nextTick', 'promise'])) yazdır.

Başlangıç kodu

index.js
// microtaskOrder fonksiyonu yaz
// görev dizisini ' -> ' ile birleştir
// ['nextTick', 'promise'] ile çağır, yazdır
// buraya yaz

Örnek çözüm

index.js
function microtaskOrder(tasks) {
  return tasks.join(' -> ');
}
console.log(microtaskOrder(['nextTick', 'promise']));

Beklenen çıktı

nextTick -> promise

Soru ve cevaplar

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

1 Kavramı açıklamasına eşle

Kavram Anlamı
process.nextTick En önce çalışan microtask
Promise.then nextTick'ten sonra çalışan microtask
Microtask Fazlar arasında çalışır
Faz Event loop adımı

2 join çağrısını tamamla

Soru
return tasks.____(' -> ');
Cevap
return tasks.join(' -> ');

Açıklama: join diziyi dizeye birleştirir.

3 nextTick ve Promise birlikte kullanılırsa hangisi önce çalışır?

index.js
process.nextTick(() => {});
Promise.resolve().then(() => {});
  • Aynı anda
  • Rastgele
  • Promise
  • nextTick Doğru cevap

Açıklama: nextTick her zaman Promise'ten önce çalışır.

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