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 հետաձգված կանչերի համար։