Package Exports
- event-emitter
- event-emitter/lib/all-off
- event-emitter/lib/core
- event-emitter/lib/has-listeners
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (event-emitter) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
EventEmitter – Cross-environment event emitter solution for JavaScript
Installation
NPM
In your project path:
$ npm install event-emitter
Browser
Browser bundle can be easily created with help of modules-webmake. Mind that it relies on some EcmaScript5 features, so for older browsers you need as well es5-shim.
Usage
var ee = require('event-emitter');
var emitter = ee({}), listener;
emitter.on('test', listener = function (args) {
// …emitter logic
});
emitter.once('test', function (args) {
// …invoked only once(!)
});
emitter.emit('test', arg1, arg2/*…args*/); // Two above listeners invoked
emitter.emit('test', arg1, arg2/*…args*/); // Only first listener invoked
emitter.off('test', listener); // Removed first listener
emitter.emit('test', arg1, arg2/*…args*/); // No listeners invoked
Additional functionalities (provided as separate modules)
allOff(obj)
Remove all listeners
var eeAllOff = require('event-emitter/lib/all-off');
eeAllOff(emitter); // Removed all registered listeners on emitter
pipe(emitter1, emitter2)
Pipe events from one emitter to other
var eePipe = require('event-emitter/lib/pipe');
var emitter1 = ee(), listener1;
var emitter2 = ee(), listener2;
emitter1.on('test', listener1 = function () { });
emitter2.on('test', listener2 = function () { });
emitter1.emit('test'); // Invoked listener1
emitter2.emit('test'); // Invoked listener2
var pipe = eePipe(emitter1, emitter2);
emitter1.emit('test'); // Invoked listener1 and listener2
emitter2.emit('test'); // Invoked just listener2
pipe.close();
emitter1.emit('test'); // Invoked listener1
emitter2.emit('test'); // Invoked listener2
hasListeners(obj[, type])
Whether given object have registered listeners
var emitter = ee();
var hasListeners = require('event-emitter/lib/has-listeners');
var listner = function () {};
hasListeners(emitter); // false
emitter.on('foo', listener);
hasListeners(emitter); // true
hasListeners(emitter, 'foo'); // true
hasListeners(emitter, 'bar'); // false
emitter.off('foo', listener);
hasListeners(emitter, 'foo'); // false
Tests 
$ npm test