Sobes.tech
Middle+

Μίλησε για το Event Loop: τι είναι, πώς λειτουργεί;

sobes.tech AI

Απάντηση από AI

Event Loop — είναι ένας μηχανισμός σε JavaScript και άλλα περιβάλλοντα με ένα μόνο νήμα που επιτρέπει την επεξεργασία ασύγχρονων λειτουργιών χωρίς να μπλοκάρει το κύριο νήμα.

Πώς λειτουργεί:

  1. Υπάρχει μια στοίβα κλήσεων (call stack), στην οποία τοποθετούνται οι συναρτήσεις προς εκτέλεση.
  2. Οι ασύγχρονες λειτουργίες (π.χ. χρονόμετρα, αιτήματα δικτύου) στέλνουν τα callback τους στη σειρά εργασιών (task queue) μετά την ολοκλήρωσή τους.
  3. Το Event Loop ελέγχει συνεχώς αν η στοίβα κλήσεων είναι άδεια. Αν ναι, παίρνει την πρώτη εργασία από τη σειρά και την τοποθετεί στη στοίβα για εκτέλεση.

Έτσι, ακόμα και με ασύγχρονες λειτουργίες, ο κώδικας εκτελείται διαδοχικά, χωρίς να μπλοκάρει το UI ή άλλες διαδικασίες.

Παράδειγμα:

console.log('Start');
setTimeout(() => {
  console.log('Timeout');
}, 0);
console.log('End');

Το αποτέλεσμα θα είναι:

Start
End
Timeout

Επειδή το callback του setTimeout μπαίνει στη σειρά εργασιών και εκτελείται αφού αδειάσει η στοίβα κλήσεων.