Sobes.tech
Middle

// Promise.resolve() // .then(() => console.log(1)) // // .then(() => console.log(2)) // // Promise.resolve() // .then(() => console.log(11)) // // .then(() => console.log(22)) //

sobes.tech AI

Odpoveď od AI

V danom kóde existujú dve reťazce sľubov, z ktorých každý začína s Promise.resolve(). Je dôležité pochopiť poradie výstupu v konzole.

Každé .then() pridáva spracovateľ do fronty mikroúloh, ktoré sa vykonávajú po aktuálnom zásobníku volaní.

Keďže obe reťazce sú vytvorené sekvenčne, ich spracovatelia budú zaradení do fronty v poradí, v akom boli deklarované.

Preto bude výstup:

1
2
11
22

Vysvetlenie:

  • Najskôr sa vykoná prvé .then(() => console.log(1)), ktoré vypíše 1.
  • Potom nasleduje .then(() => console.log(2)), ktoré vypíše 2.
  • Následne sa vykoná .then(() => console.log(11)) z druhej reťaze, ktorá vypíše 11.
  • A nakoniec .then(() => console.log(22)), ktorá vypíše 22.

Ak chceme, aby bol výstup zmiešaný alebo v inom poradí, musíme zmeniť štruktúru sľubov alebo použiť setTimeout na oneskorené volania.