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

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íše 1.
  • Poté následuje .then(() => console.log(2)), který vypíše 2.
  • Poté se provede .then(() => console.log(11)) z druhého řetězce, který vypíše 11.
  • A nakonec .then(() => console.log(22)), který vypíše 22.

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í.