Skip to content

An npm package that provides a function for generating callback functions and calls a provided callback once all functions have been invoked or an error after a configurable timeout.

Notifications You must be signed in to change notification settings

tizzo/node-multiple-callback-resolver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Multiple Callback Resolver

Build Status Coverage Status

This project contains a simple class that allows you to instantiate callback functions and then execute a final callback when all of the generated callbacks complete. This is especially useful in testing that a set of events is emitted in a test case or in fanning out a set of work and running some code after all of a set of callbacks has been invoked.

Let's say you have a class called Something and it emits 3 events when when the run() method is processed.

var Resolver = require('multiple-callback-resolver');
var resolver = new Resolver();
resolver.resolve(function(error, results) {
  // Get the data sent on the 'start' event.
  results[0];
  // Get the data sent on the 'in progress' event.
  results[1];
  // Get the data sent on the 'end' event.
  results[2];
  // Data sent to the callback provided to the `run()` method.
  results[3];
};
var something = new Something();
something.once('start', resolver.createCallback());
something.once('in progress', resolver.createCallback());
something.once('end', resolver.createCallback());
something.run(resolver.createCallback());

Optionally, you may set a timeout:

var Resolver = require('multiple-callback-resolver');
var callbacks = Resolver.resolve(2, {timeoutMilliSeconds: 10}, function(error, results) {
  console.log(error);
  // `[ 'Timeout exceeded waiting for callback to be called.' ]`
};
// Here we call one of the two callbacks created, but not both.
callbacks[0]();

About

An npm package that provides a function for generating callback functions and calls a provided callback once all functions have been invoked or an error after a configurable timeout.

Resources

Stars

Watchers

Forks

Packages

No packages published