Mi történik, ha újra feliratkozol ugyanarra a kezelőre? Hogyan változik a hívások sorrendje?
sobes.tech MI
Válasz az MI-től
Ugyanahhoz a kezelőhöz (például JavaScript eseményrendszerében vagy DOM eseményeken) való újra feliratkozáskor általában ezt a kezelőt újra hozzáadják a hallgatók listájához. Ez azt jelenti, hogy az esemény bekövetkeztekor a kezelő annyiszor lesz meghívva, ahányszor feliratkoztak rá.
A hívások sorrendje nem változik: a kezelők a hozzáadásuk sorrendjében kerülnek meghívásra. Ha ugyanaz a kezelő többször van hozzáadva, akkor egymás után többször is meghívódik azon a helyen, ahol hozzáadták.
JavaScript példával:
const button = document.querySelector('button');
function handler() {
console.log('Clicked');
}
button.addEventListener('click', handler);
button.addEventListener('click', handler);
// Kattintáskor a konzolon a következő jelenik meg:
// Clicked
// Clicked
Az ismételt feliratkozások elkerülése érdekében általában ellenőrzik, hogy a kezelő már fel van-e iratkozva, mielőtt hozzáadnák, vagy olyan módszereket használnak, amelyek nem adnak hozzá duplikátumokat (például, once vagy a kezelő eltávolítása a hozzáadás előtt).