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

Antwoord van AI

In de gegeven code zijn er twee promise-ketens, elk beginnend met Promise.resolve(). Het is belangrijk om de uitvoervolgorde in de console te begrijpen.

Elke .then() voegt een handler toe aan de microtask-queue, die wordt uitgevoerd na de huidige call stack.

Aangezien beide ketens sequentieel worden gemaakt, worden hun handlers in de volgorde waarin ze zijn gedeclareerd in de wachtrij geplaatst.

Daarom zal de uitvoer zijn:

1
2
11
22

Uitleg:

  • Eerst wordt de eerste .then(() => console.log(1)) uitgevoerd, die 1 afdrukt.
  • Vervolgens wordt de volgende .then(() => console.log(2)) uitgevoerd, die 2 afdrukt.
  • Daarna wordt .then(() => console.log(11)) uit de tweede keten uitgevoerd, die 11 afdrukt.
  • En tot slot wordt .then(() => console.log(22)) uitgevoerd, die 22 afdrukt.

Als we willen dat de uitvoer gemengd of in een andere volgorde is, moeten we de promise-structuur aanpassen of setTimeout gebruiken voor uitgestelde oproepen.