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

AIdan javob

Berilgan kodda ikkita va'da zanjiri mavjud, har biri Promise.resolve() bilan boshlanadi. Konsolda chiqarilish tartibini tushunish muhim.

Har bir .then() hozirgi chaqirishlar stackidan keyin bajariladigan mikro vazifalar navbatiga handler qo'shadi.

Ikki zanjir ketma-ket yaratilgani uchun, ularning handlerlari e'lon qilingan tartibda navbatga qo'yiladi.

Shuning uchun chiqish quyidagicha bo'ladi:

1
2
11
22

Tushuntirish:

  • Avvalo, birinchi .then(() => console.log(1)) bajariladi va 1 chiqaradi.
  • Keyin, keyingi .then(() => console.log(2)) bajariladi va 2 chiqaradi.
  • So'ng, ikkinchi zanjirdan .then(() => console.log(11)) bajariladi va 11 chiqaradi.
  • Va oxirida, .then(() => console.log(22)) bajariladi va 22 chiqaradi.

Agar chiqarish aralash yoki boshqa tartibda bo'lishini istasangiz, va'dalar tuzilishini o'zgartirish yoki kechiktirilgan chaqiriqlar uchun setTimeout ishlatish kerak bo'ladi.