Skip to content

Throttles promises being executed, i.e. to allow no more than 10 at a time

Notifications You must be signed in to change notification settings

remy/promise-throttle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

promise-throttle

Throttles promises to n concurrent promises at a time.

Usage

// run 10 promises at a time
var throttle = require('promise-throttle')(10);
var request = require('request');
var urls = [...];

var promises = urls.map(function (url) {
  return throttle(function (resolve, reject) {
    request(url, function (error, res, body) {
      if (error) {
        return reject(error);
      }

      if (res.statusCode === 200) {
        return resolve(body);
      } else {
        return reject(new Error(body)); // likely error too
      }
    });
  });
});

Promise.all(promises).then(function (requestData) {
  // requestData contains all the response data
  // limiting to 10 concurrent requests at a time.
});

About

Throttles promises being executed, i.e. to allow no more than 10 at a time

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages