wwaawaw wwaawaw - 9 months ago 41
Javascript Question

What is an "event emitter"?

Browsing through http://microjs.com, I see lots of libraries labeled "event emitters". I like to think I know my way around the basics of the javascript language pretty well, but I really have no idea what an "event emitter" is or does.

Anyone care to enlighten me? It sounds interesting...

Answer Source

Event emitter as it sounds is just something that triggers an event to which anyone can listen. Different libraries offer different implementations and for different purposes, but the basic idea is to provide a framework for issuing events and subscribing to them.

Example from jQuery:

// Subscribe to event.
$('#foo').bind('click', function() {
    alert("Click!");
});

// Emit event.
$('#foo').trigger('click');

However, with jQuery in order to emit an event you need to have a DOM object, and cannot emit events from an arbitrary object. This is where event-emitter becomes useful. Here's some pseudo-code to demo custom events (the exact same pattern as above):

// Create custom object which "inherits" from emitter. Keyword "extend" is just a pseudo-code.
var myCustomObject = {};
extend(myCustomObject , EventEmitter);

// Subscribe to event.
myCustomObject.on("somethingHappened", function() { 
    alert("something happened!");
});

// Emit event.
myCustomObject.emit("somethingHappened");
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download