Sobes.tech
Middle

Дар кадом тартиб рақамҳо дар код бо Promise, setTimeout ва коди синхронӣ (Event Loop) намоиш дода мешаванд?

sobes.tech AI

Ҷавоб аз AI

Дар JavaScript, тартиби иҷрои коди бо Promise, setTimeout ва коди синхронӣ муайян карда мешавад бо Event Loop ва навбатҳои микровазифаҳо (microtasks) ва макровазифаҳо (macrotasks).

Бигзор як мисолро баррасӣ кунем:

console.log('1');

setTimeout(() => {
  console.log('2');
}, 0);

Promise.resolve().then(() => {
  console.log('3');
});

console.log('4');

Тавзеҳ:

  • Аввал, тамоми коди синхронӣ иҷро мешавад, бинобар ин 1 ва 4 нишон дода мешаванд.
  • Пас, микровазифаҳо (Promise) иҷро мешаванд, ва 3 нишон дода мешавад.
  • Баъд, макровазифаҳо (setTimeout) иҷро мешаванд, ва 2 нишон дода мешавад.

Тартиби ниҳоии баромад: 1, 4, 3, 2.

Бинобар ин, коди синхронӣ аввал иҷро мешавад, пас микровазифаҳо (Promise), ва дар охир макровазифаҳо (setTimeout). Ин нуқтаи калидӣ барои фаҳмидани Event Loop дар JavaScript мебошад.