Sobes.tech
Middle

Millises järjekorras kuvatakse numbrid koodis, mis kasutab Promise, setTimeout ja sünkroonset koodi (Event Loop)?

sobes.tech AI

Vastus AI-lt

JavaScriptis määrab Promise, setTimeout ja sünkrone koodi täitmise järjekorra Event Loop ja mikro- ning makroülesannete (microtasks ja macrotasks) järjekordade kaudu.

Vaatleme näidet:

console.log('1');

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

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

console.log('4');

Selgitus:

  • Kõigepealt täidetakse kogu sünkrone kood, seega kuvatakse 1 ja 4.
  • Seejärel täidetakse mikroülesanded (Promise), kuvades 3.
  • Pärast seda täidetakse makroülesanded (setTimeout), kuvades 2.

Lõplik väljundi järjekord on: 1, 4, 3, 2.

Seega täidetakse sünkrone kood esimesena, järgivad mikroülesanded (Promise) ja lõpuks makroülesanded (setTimeout). See on oluline punkt Event Loop mõistmiseks JavaScriptis.