Event Driven Applications - 401-advanced-javascript-jv/seattle-javascript-401d30 GitHub Wiki
An event-driven application is one where there are listeners and emitters, which both work together. A listener is a piece of code that waits to be called by an event, then does something with (handles) the data attached. An emitter is a function which sends out an instruction and some data (an event), and then quits caring what happens.
An EventListener type object is a common pool of event-related pieces. Think of it like hungry fish in this pool. These fish only want a specific kind of food (the name of the event) and every single fish that wants that kind of food will jump at the chance to eat it.
Using the same analogy, whenever an event is emitted, it's like tossing the food into the pool. The food has a name (the event name) and the food itself is the data which a listener will consume. You can toss as many pieces of food into the pool as you want, and all the fish who want that food will do their thing when they get a piece of it.