Sobes.tech
Middle

Event Loop тапсырмасы: setTimeout, Promise және синхронды код болған кезде консоль шығару тәртібін анықтаңыз. Соңғы не шығарылады және неге?

sobes.tech AI

AI-дан жауап

JavaScript-те setTimeout, Promise және синхронды кодпен орындалу тәртібі Event Loop және тапсырмалар кезектері (task queue және microtask queue) арқылы анықталады.

  1. Алдымен барлық синхронды код орындалады.
  2. Содан кейін барлық микротаскалар (microtasks), мысалы, Promise өңдеушілері орындалады.
  3. Осыдан кейін макротаскалар (tasks), мысалы, setTimeout, орындалады.

Мысал:

console.log('Синхронды код');

setTimeout(() => {
  console.log('setTimeout');
}, 0);

Promise.resolve().then(() => {
  console.log('Promise');
});

Шығу нәтижесі:

Синхронды код
Promise
setTimeout

setTimeout-тан хабарлама соңғы шығарылады, себебі setTimeout макротаска кезегіне қойылады, ол микротаскалар (Promise) аяқталғаннан кейін өңделеді.