Skip to content

Call an array of promise-returning functions, restricting concurrency to a specified limit.

License

Notifications You must be signed in to change notification settings

codedokode/promise-call-limit

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

promise-call-limit

Call an array of promise-returning functions, restricting concurrency to a specified limit.

USAGE

const promiseCallLimit = require('promise-call-limit')
const things = getLongListOfThingsToFrobulate()

// frobulate no more than 4 things in parallel
promiseCallLimit(things.map(thing => () => frobulateThing(thing)), 4)
  .then(results => console.log('frobulated 4 at a time', results))

API

promiseCallLimit(queue Array<() => Promise>, limit = defaultLimit)

The default limit is the number of CPUs on the system - 1, or 1.

The reason for subtracting one is that presumably the main thread is taking up a CPU as well, so let's not be greedy.

Note that the array should be a list of Promise-returning functions, not Promises themselves. If you have a bunch of Promises already, you're best off just calling Promise.all().

The functions in the queue are called without any arguments.

About

Call an array of promise-returning functions, restricting concurrency to a specified limit.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%