Sobes.tech
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.