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

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șând 11.
  • Și, în final, .then(() => console.log(22)), afișând 22.

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.