Async concurrent iterator (async forEach)
JavaScript
Latest commit 5db779f Nov 3, 2016 @sindresorhus recommend using promises
closes #8
Permalink
Failed to load latest commit information.
.editorconfig meta tweaks Jun 26, 2016
.gitattributes init Dec 1, 2013
.gitignore tweaks Aug 13, 2014
.travis.yml meta tweaks Jun 26, 2016
index.js use a more lightweight shim Dec 29, 2014
license tweaks Aug 13, 2014
package.json recommend using promises Nov 3, 2016
readme.md recommend using promises Nov 3, 2016
test.js meta tweaks Jun 26, 2016

readme.md

each-async Build Status

Async concurrent iterator (async forEach)

Like async.each(), but tiny.

I often use async.each() for doing async operations when iterating, but I almost never use the other gadzillion methods in async.

Async iteration is one of the most used async control flow patterns.

I would strongly recommend using promises instead. You could then use the built-in Promise.all(), or p-map if you need concurrency control.

Install

$ npm install --save each-async

Usage

const eachAsync = require('each-async');

eachAsync(['foo','bar','baz'], (item, index, done) => {
	console.log(item, index);
	done();
}, error => {
	console.log('finished');
});
//=> 'foo 0'
//=> 'bar 1'
//=> 'baz 2'
//=> 'finished'

API

eachAsync(input, callback, [finishedCallback])

input

Type: Array

Array you want to iterate.

callback(item, index, done)

Type: Function

Called for each item in the array with the following arguments:

  • item: the current item in the array
  • index: the current index
  • done([error]): call this when you're done with an optional error. Supplying anything other than undefined/null will stop the iteration.

Note that order is not guaranteed since each item is handled concurrently.

finishedCallback(error)

Type: Function

Called when the iteration is finished or on the first error. First argument is the error passed from done() in the callback.

License

MIT © Sindre Sorhus