Skip to content
Async concurrent iterator (async forEach)
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
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
license tweaks Aug 13, 2014
package.json recommend using promises Nov 3, 2016 recommend using promises Nov 3, 2016
test.js meta tweaks Jun 26, 2016

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.


$ npm install --save each-async


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

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


eachAsync(input, callback, [finishedCallback])


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.


Type: Function

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


MIT © Sindre Sorhus

You can’t perform that action at this time.