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

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äljastab 1.
  • Seejärel järgneb .then(() => console.log(2)), mis väljastab 2.
  • Järgmisena täidetakse teise ahela .then(() => console.log(11)), mis väljastab 11.
  • Ja lõpuks täidetakse .then(() => console.log(22)), mis väljastab 22.

Kui soovime, et väljund oleks segamini või teises järjekorras, tuleb muuta lubaduste struktuuri või kasutada setTimeout viivitustega kõnede jaoks.