Sobes.tech
Middle

Kādā secībā skaitļi tiks izvadīti kodā ar Promise, setTimeout un sinhrono kodu (Event Loop)?

sobes.tech AI

Atbilde no AI

JavaScript, Promise, setTimeout un sinhronais kods izpildes secība ir noteikta ar Event Loop un mikro- un makro uzdevumu (microtasks un macrotasks) rindām.

Apskatīsim piemēru:

console.log('1');

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

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

console.log('4');

Skaidrojums:

  • Vispirms tiek izpildīts viss sinhronais kods, tāpēc tiek parādīti 1 un 4.
  • Tad tiek izpildītas mikro uzdevumi (Promise), parādot 3.
  • Pēc tam tiek izpildītas makro uzdevumi (setTimeout), parādot 2.

Galīgā izvades secība ir: 1, 4, 3, 2.

Tātad, sinhronais kods tiek izpildīts pirmais, pēc tam mikro uzdevumi (Promise), un beigās makro uzdevumi (setTimeout). Šis ir būtisks punkts, lai saprastu Event Loop JavaScriptā.