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šveda1. - Tada sekantis
.then(() => console.log(2)), kuris išveda2. - Po to vykdomas
.then(() => console.log(11))iš antros grandinės, kuris išveda11. - Ir pabaigoje,
.then(() => console.log(22)), kuris išveda22.
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.