Sobes.tech
Middle+

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).