You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
An asynchronous event emitter for node.js and the browser. Heavily inspired by component/emitter.
Installation
Using component:
component install matthewmueller/aemitter
Using node.js:
npm install aemitter
Example
varEmitter=require('aemitter');varuser={name: 'matt'};Emitter(user);user.on('save',function(data,next){// save datanext()});user.emit('save',data,function(err){// called after all `save` callbacks have completed});
API
Emitter#on(event, fn)
Register an event handler fn. The signature of fn will be all the arguments emitted + the next(err) function. If this function is not specified, Emitter#on will immediately return.
user.on('save',function(next){// asynchronous, will wait for `next` to be called});user.on('save',function(){// immediately returns})user.emit('save');
It's important to note that next will be passed as the last argument. If Emitter#emit passes four arguments, next will be it's fifth.
Emitter#once(event, fn)
Register a single-shot event handler fn,
removed immediately after it is invoked the
first time.
Emitter#off(event, fn)
Remove event handler fn, or pass only the event
name to remove all handlers for event.
Emitter#emit(event, ..., [fn])
Emit an event with variable option args, and a final, optional callback fn. This fn will be called when all the event callbacks have finished.
Caveat: You will need to be consistent with the emit signature, otherwise Emitter#on() callbacks will be inconsistent and likely fail. For example:
user.emit('save',data,message,fn);// main signatureuser.emit('save',data,fn);// will NOT work as expecteduser.emit('save',data,'',fn);// will work as expecteduser.emit('save',data,'');// will also work as expected
Emitter#listeners(event)
Return an array of callbacks, or an empty array.
Emitter#hasListeners(event)
Check if this emitter has event handlers.
Test
npm install .
mocha test
License
MIT
About
An asynchronous event emitter for node.js and the browser