Middle+
Μίλησε για το Event Loop: τι είναι, πώς λειτουργεί;
sobes.tech AI
Απάντηση από AI
Event Loop — είναι ένας μηχανισμός σε JavaScript και άλλα περιβάλλοντα με ένα μόνο νήμα που επιτρέπει την επεξεργασία ασύγχρονων λειτουργιών χωρίς να μπλοκάρει το κύριο νήμα.
Πώς λειτουργεί:
- Υπάρχει μια στοίβα κλήσεων (call stack), στην οποία τοποθετούνται οι συναρτήσεις προς εκτέλεση.
- Οι ασύγχρονες λειτουργίες (π.χ. χρονόμετρα, αιτήματα δικτύου) στέλνουν τα callback τους στη σειρά εργασιών (task queue) μετά την ολοκλήρωσή τους.
- Το Event Loop ελέγχει συνεχώς αν η στοίβα κλήσεων είναι άδεια. Αν ναι, παίρνει την πρώτη εργασία από τη σειρά και την τοποθετεί στη στοίβα για εκτέλεση.
Έτσι, ακόμα και με ασύγχρονες λειτουργίες, ο κώδικας εκτελείται διαδοχικά, χωρίς να μπλοκάρει το UI ή άλλες διαδικασίες.
Παράδειγμα:
console.log('Start');
setTimeout(() => {
console.log('Timeout');
}, 0);
console.log('End');
Το αποτέλεσμα θα είναι:
Start
End
Timeout
Επειδή το callback του setTimeout μπαίνει στη σειρά εργασιών και εκτελείται αφού αδειάσει η στοίβα κλήσεων.