Throttle the parallelism of an asynchronous (promise returning) function / functions
Throttle the parallelism of an asynchronous, promise returning, function / functions. This has special utility when you set the concurrency to
1. That way you get a mutually exclusive lock.
npm install throat
This returns a function that acts a bit like a lock (exactly as a lock if concurrency is 1).
Example, only 2 of the following functions will execute at any one time:
// with polyfill or in iojsvar throat = 2// alternatively provide your own promise implementationvar throat = 2var resA =var resA =var resA =var resA =var resA =
This returns a function that is an exact copy of
worker except that it will only execute up to
concurrency times in parallel before further requests are queued:
// with polyfill or in iojsvar throat =// alternatively provide your own promise implementationvar throat =var input = 'fileA.txt' 'fileB.txt' 'fileC.txt' 'fileD.txt'var data = Promiseallinput
Only 2 files will be read at a time, sometimes limiting parallelism in this way can improve scalability.