Sobes.tech
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 ή διαγραφή του χειριστή πριν τον προσθέσετε ξανά).