Middle
// Promise.resolve() // .then(() => console.log(1)) // // .then(() => console.log(2)) // // Promise.resolve() // .then(() => console.log(11)) // // .then(() => console.log(22)) //
sobes.tech AI
Odpověď od AI
V poskytnutém kódu jsou dvě řetězce promise, každý začíná s Promise.resolve(). Je důležité pochopit pořadí výstupu v konzoli.
Každé .then() přidává obslužný program do fronty mikroúkolů, které se vykonávají po aktuálním zásobníku volání.
Protože oba řetězce jsou vytvářeny sekvenčně, jejich obslužné programy budou zařazeny do fronty v pořadí, ve kterém jsou deklarovány.
Výstup bude tedy:
1
2
11
22
Vysvětlení:
- Nejprve se provede první
.then(() => console.log(1)), který vypíše1. - Poté následuje
.then(() => console.log(2)), který vypíše2. - Poté se provede
.then(() => console.log(11))z druhého řetězce, který vypíše11. - A nakonec
.then(() => console.log(22)), který vypíše22.
Pokud bychom chtěli, aby byl výstup smíšený nebo v jiném pořadí, museli bychom změnit strukturu promise nebo použít setTimeout pro odložené volání.