Middle+
Τι συμβαίνει όταν εγγράφεστε ξανά στον ίδιο χειριστή; Πώς θα αλλάξει η σειρά των κλήσεων;
sobes.tech AI
Απάντηση από AI
Όταν εγγράφεστε ξανά σε έναν ίδιο χειριστή (για παράδειγμα, σε ένα σύστημα γεγονότων ή σε γεγονότα DOM σε JavaScript), συνήθως προστίθεται ξανά στη λίστα των ακροατών. Αυτό σημαίνει ότι, όταν συμβεί το γεγονός, ο χειριστής θα κληθεί όσες φορές έχει εγγραφεί.
Η σειρά των κλήσεων δεν αλλάζει: οι χειριστές καλούνται με τη σειρά που προστέθηκαν. Αν ο ίδιος χειριστής προστεθεί πολλές φορές, θα κληθεί πολλές φορές διαδοχικά στα σημεία όπου προστέθηκε.
Παράδειγμα σε JavaScript:
const button = document.querySelector('button');
function handler() {
console.log('Clicked');
}
button.addEventListener('click', handler);
button.addEventListener('click', handler);
// Με κλικ, στην κονσόλα θα εμφανιστεί:
// Clicked
// Clicked
Για να αποφύγετε διπλές εγγραφές, συνήθως ελέγχετε αν ο χειριστής είναι ήδη εγγεγραμμένος πριν τον προσθέσετε, ή χρησιμοποιείτε μεθόδους που δεν προσθέτουν διπλότυπα (π.χ., once ή διαγραφή του χειριστή πριν τον προσθέσετε ξανά).