Skip to content
ed9506bbaf
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
codeql-action/node_modules/tiny-each-async/
codeql-action/node_modules/tiny-each-async/

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
August 16, 2022 11:54

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