Consider, a DOM Event:
const button = document.querySelector("button"); button.addEventListener("click", (event) => /* do something with the event */)
We added a listener to a button click. We’ve subscribed to an event being emitted and we fire a callback when it does. Every time we click that button, that event is emitted and our callback fires with the event.
There may be times you want to fire a custom event when you’re working in an existing codebase. Not specifically a DOM … Read article “Understanding Event Emitters”