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:
  • Հետո կատարվում են microtasks (Promise), և տպվում է 3:
  • Դրանից հետո կատարվում են macrotasks (setTimeout), և տպվում է 2:

Վերջնական արտածման կարգը՝ 1, 4, 3, 2:

Այսպիսով, սինխրոնային կոդը կատարվում է առաջինը, ապա microtasks (Promise), և վերջում macrotasks (setTimeout): Սա կարևոր կետ է JavaScript-ի Event Loop- ը հասկանալու համար։