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

Պատասխան AI-ից

Տվյալ կոդում կա երկու խոստումների շղթա, որոնցից յուրաքանչյուրը սկսվում է Promise.resolve()-ով։ Կարևոր է հասկանալ կոնսոլում արտածման կարգը։

Յուրաքանչյուր .then() ավելացնում է միկրոտասքների հերթին, որոնք կատարվում են ընթացիկ կանչերի բլոկից հետո։

Քանի որ երկու շղթաները ստեղծվում են հերթականությամբ, դրանց հսկիչները կտեղադրվեն հերթի մեջ այն կարգով, որով հայտարարվել են։

Հետևաբար, ելքը կլինի՝

1
2
11
22

Նպատակը՝

  • Առաջին .then(() => console.log(1)) կատարվում է առաջինը և տպում է 1։
  • Հետո, հաջորդ .then(() => console.log(2))-ը, որը տպում է 2։
  • Այնուհետև, երկրորդ շղթայից .then(() => console.log(11))-ը, որը տպում է 11։
  • Եվ վերջում, .then(() => console.log(22))-ը, որը տպում է 22։

Եթե ուզում ենք, որ ելքը խառը կամ այլ կարգով լինի, պետք է փոխել խոստումների կառուցվածքը կամ օգտագործել setTimeout հետաձգված կանչերի համար։