Middle
// Promise.resolve() // .then(() => console.log(1)) // // .then(() => console.log(2)) // // Promise.resolve() // .then(() => console.log(11)) // // .then(() => console.log(22)) //
sobes.tech AI
Vastus AI-lt
Antud koodis on kaks lubaduste ahelat, millest igaüks algab Promise.resolve()-ga. Oluline on mõista väljundi järjekorda konsoolis.
Iga .then() lisab mikrotööde järjekorda, mis täidetakse pärast praegust kutsungijada.
Kuna mõlemad ahelad luuakse järjestikku, pannakse nende käsitlejad järjekorda nende deklareerimise järjekorras.
Seetõttu on väljund järgmine:
1
2
11
22
Selgitus:
- Esmalt täidetakse esimene
.then(() => console.log(1)), mis väljastab1. - Seejärel järgneb
.then(() => console.log(2)), mis väljastab2. - Järgmisena täidetakse teise ahela
.then(() => console.log(11)), mis väljastab11. - Ja lõpuks täidetakse
.then(() => console.log(22)), mis väljastab22.
Kui soovime, et väljund oleks segamini või teises järjekorras, tuleb muuta lubaduste struktuuri või kasutada setTimeout viivitustega kõnede jaoks.