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- ը հասկանալու համար։