Middle
// Promise.resolve() // .then(() => console.log(1)) // // .then(() => console.log(2)) // // Promise.resolve() // .then(() => console.log(11)) // // .then(() => console.log(22)) //
sobes.tech AI
Răspuns de la AI
În codul furnizat, există două lanțuri de promisiuni, fiecare începând cu Promise.resolve(). Este important să înțelegem ordinea de afișare în consolă.
Fiecare .then() adaugă un handler în coada de microtask-uri, care sunt executate după stiva curentă de apeluri.
Deoarece ambele lanțuri sunt create secvențial, handlerii lor vor fi plasați în coadă în ordinea în care sunt declarate.
Prin urmare, ieșirea va fi:
1
2
11
22
Explicație:
- Mai întâi, se execută primul
.then(() => console.log(1)), care afișează1. - Apoi, următorul
.then(() => console.log(2)), care afișează2. - După aceea, se execută
.then(() => console.log(11))din a doua lanț, afișând11. - Și, în final,
.then(() => console.log(22)), afișând22.
Dacă am dori ca ieșirea să fie amestecată sau în altă ordine, ar fi necesar să modificăm structura promisiunilor sau să folosim setTimeout pentru apeluri întârziate.