Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    aemitterpublic

    Æmitter

    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

    var Emitter = require('aemitter');
    var user = { name: 'matt' };
    Emitter(user);
     
    user.on('save', function(data, next) {
      // save data 
      next()
    });
     
    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 signature 
    user.emit('save', data, fn); // will NOT work as expected 
    user.emit('save', data, '', fn); // will work as expected 
    user.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

    Keywords

    none

    install

    npm i aemitter

    Downloadsweekly downloads

    1

    version

    0.0.1

    license

    MIT

    last publish

    collaborators

    • avatar