Middle
Σε ποια σειρά θα εμφανιστούν τα νούμερα στον κώδικα με Promise, setTimeout και συγχρονικό κώδικα (Event Loop);
sobes.tech AI
Απάντηση από AI
Στην JavaScript, η σειρά εκτέλεσης του κώδικα με Promise, setTimeout και συγχρονικό κώδικα καθορίζεται από το Event Loop και τις ουρές microtasks (microtasks) και macrotasks (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). Αυτό είναι ένα βασικό σημείο για την κατανόηση του Event Loop στην JavaScript.