Skip to content

Asynchronously emit event an event based on the arguments length.

License

Notifications You must be signed in to change notification settings

primus/asyncemit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

asyncemit

Version npmCICoverage Status

The asyncemit allows you to emit an event to an EventEmitter3 asynchronously.

Installation

The module is released in the public npm registry and can be installed using:

npm install --save asyncemit

Usage

To make this pattern work there are a couple of preconditions that need to be satisfied:

  1. The method should be added on either a class that inherits from the EventEmitter or on a new EventEmitter instance.
  2. The number of arguments expected by a listener function should match the number of arguments passed to the asyncemit method excluding the event name.

See the following example:

var EventEmitter = require('eventemitter3')
  , asyncemit = require('asyncemit');

var ee = new EventEmitter();
ee.asyncemit = asyncemit;

//
// The next `foo` listeners will not be executed until `next` is called.
//
ee.on('foo', function (arg, next) {
  // Do things with arg?
  next();
});

//
// Still executed, but synchronously.
//
ee.on('foo', function (arg) {

});

ee.asyncemit('foo', 'bar', function (err) {
  //
  // The error argument will be set if one of the async listeners called the
  // `next` callback with an `error` argument.
  //
});

License

MIT

About

Asynchronously emit event an event based on the arguments length.

Resources

License

Stars

Watchers

Forks

Packages

No packages published