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, die1afdrukt. - Vervolgens wordt de volgende
.then(() => console.log(2))uitgevoerd, die2afdrukt. - Daarna wordt
.then(() => console.log(11))uit de tweede keten uitgevoerd, die11afdrukt. - En tot slot wordt
.then(() => console.log(22))uitgevoerd, die22afdrukt.
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.