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

Atsakymas iš AI

Pateiktame kode yra dvi pažadų grandinės, kiekviena pradedama nuo Promise.resolve(). Svarbu suprasti išvesties tvarką konsolėje.

Kiekvienas .then() prideda mikroužduočių eilę, kuri vykdoma po esamo iškvietimo krūvos.

Kadangi abi grandinės sukuriamos seka, jų tvarkyklės bus įtrauktos į eilę pagal deklaravimo tvarką.

Todėl išvestis bus tokia:

1
2
11
22

Paaiškinimas:

  • Pirmiausia vykdomas pirmas .then(() => console.log(1)), kuris išveda 1.
  • Tada sekantis .then(() => console.log(2)), kuris išveda 2.
  • Po to vykdomas .then(() => console.log(11)) iš antros grandinės, kuris išveda 11.
  • Ir pabaigoje, .then(() => console.log(22)), kuris išveda 22.

Jei norėtume, kad išvestis būtų maišyta arba kitokia tvarka, reikėtų keisti pažadų struktūrą arba naudoti setTimeout vėlavusiems iškvietimams.