JSPM

tiny-each-async

2.0.3
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 94711
  • Score
    100M100P100Q162305F
  • License MIT

Asynchronous iterator function for parallel processing.

Package Exports

  • tiny-each-async

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

Readme

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