Microtask ve macrotask nedir? requestAnimationFrame bu sıranın neresindedir?

Cevap

Event loop her turda şunu yapar: call stack boşalınca bir macrotask çalıştırır, ardından tüm microtask kuyruğunu boşaltır, gerekiyorsa sayfayı yeniden çizer.

  • Macrotask: setTimeout, setInterval, I/O, kullanıcı olayları, MessageChannel
  • Microtask: Promise callback'leri (then, await sonrası), queueMicrotask, MutationObserver
  • requestAnimationFrame: bir sonraki ekran çizimi (render) öncesinde çalışır, tipik olarak saniyede 60 kez. Animasyonlar için setTimeout yerine kullanılmalıdır.
setTimeout(() => console.log("macrotask"));
Promise.resolve().then(() => console.log("microtask"));
requestAnimationFrame(() => console.log("raf"));
console.log("senkron");
// senkron → microtask → (raf ve macrotask: tarayıcıya göre) …

Sonsuz microtask üreten kod (sürekli kendini tekrar eden then) render'ı ve macrotask'ları açlıkta bırakıp sayfayı dondurabilir.

  1. var, let ve const arasındaki fark nedir?KolayJavaScriptFrontend
  2. == ile === arasındaki fark nedir?KolayJavaScriptFrontend
  3. Closure nedir? Bir örnekle açıklayın.OrtaJavaScriptFrontend
  4. Aşağıdaki kodun çıktısı nedir? (Event loop)OrtaJavaScriptFrontend
  5. this anahtar kelimesi nasıl belirlenir? Arrow function'larda ne değişir?OrtaJavaScriptFrontend
  6. Bir debounce fonksiyonu yazın.ZorJavaScriptFrontend

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle