2.0.3 • Published 8 years ago

tiny-each-async v2.0.3

Weekly downloads
34,233
License
MIT
Repository
github
Last release
8 years ago

tiny-each-async

Asynchronous iterator function similar to (and inspired by) async.each, with support for concurrency limit and item index.

build status

Usage

each(array, limit, iterator, callback)

Arguments:

  • array - An array of items to iterate through.
  • limit - An (optional) integer for determining how many iterator functions should be run in parallel.
  • iterator(item, index, callback) - A function to be applied to each item in the array. When it has finished processing the item then the callback function should be called (in case of a failure with the error argument, otherwise none).
  • callback(err) - An optional callback function that gets called when either all iterator functions have finished or one of them has returned an error.

Example

var eachAsync = require('tiny-each-async');
var timeouts = [300, 100, 2000];

eachAsync(['file1', 'file2', 'file3'], function(item, index, next) {
  setTimeout(function() {
    console.log(item, index, timeouts[index]);
    next();
  }, timeouts[index]);
}, function(err) {
  return err ? console.error(err.stack) : console.log('all done');
});

For more examples checkout the /examples folder.

FAQ

  • Why the name?

Other possible names were already taken, and the actual source code is tiny.

  • Why create another async library?

Because doing your own thing is fun.

  • What if my iterator function is sync, but I want it && the callback to be async?

Then you might want to use dezalgo.

License

MIT