JSPM

after-all-results

2.0.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 351944
  • Score
    100M100P100Q179554F
  • License MIT

Bundle results of async functions calls into one callback with all the results

Package Exports

  • after-all-results

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 (after-all-results) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

after-all-results

If you have multiple async function calls that you want to run in parallel and collect all their results in an array, this is the module for you.

It's like after-all with a build in results aggregator.

build status

Installation

npm install after-all-results

Usage

First require the module:

var afterAll = require('after-all-results');

Then initialize with a callback that should be called once all the async stuff is done:

var next = afterAll(function (err, results) {
  // all done!
  console.log(results);
});

The returned next function is essentially just a smart callback-generator. The after-all-results module will wait and not call the all-done function until all the generated callbacks have been called:

someAsyncFunction(next());
anotherAsyncFunction(next());

Note: It is important that all next() calls are done on the same tick as the inital call to afterAll()!

Bonus: Inception mode

var next = afterAll(function (err, results) {
  // results will be an array of `arg1` from below
  console.log('Done with everything!');
});

async(next(function (err, arg1, arg2) {
  console.log('Done with first call to async');
});

async(next(function (err, arg1, arg2) {
  console.log('Done with second call to async');
});

License

MIT