Middle
Milyen sorrendben jelennek meg a számok a Promise, setTimeout és szinkron kód (Event Loop) esetén?
sobes.tech MI
Válasz az MI-től
JavaScriptben a Promise, setTimeout és a szinkron kód végrehajtási sorrendje az Event Loop és a mikro- és makrofeladatok (microtasks és macrotasks) sorai által van meghatározva.
Vegyünk egy példát:
console.log('1');
setTimeout(() => {
console.log('2');
}, 0);
Promise.resolve().then(() => {
console.log('3');
});
console.log('4');
Magyarázat:
- Először a teljes szinkron kód fut le, így megjelenik
1és4. - Ezután a mikrofeladatok (Promise) futnak, és megjelenik
3. - Ezután a makrofeladatok (setTimeout) futnak, és megjelenik
2.
A végső kimenet sorrendje: 1, 4, 3, 2.
Tehát a szinkron kód fut le elsőként, majd a mikrofeladatok (Promise), végül a makrofeladatok (setTimeout). Ez egy kulcsfontosságú pont a JavaScript Event Loop megértéséhez.