timeout-promise-queue
Promise queue with timeouts and promise cleanup after expiration.
Motivation
Reduce threads associated with forked processes by throttling the creating of processes.
Installation
timeout-promise-queue
can be installed using npm
:
npm install timeout-promise-queue
Interface
PromiseQueue(Number maxConcurrent): Queue
Queue#add(Function promseGenerator, [Number timeout, [rejection]]): Promise
- calls function to generate a promise to add to the queue- `promiseGenerator([EventEmitter cancel]): Promise - generate a promise to add to the queue
- if
timeout
is defined,promseGenerator
is called with an EventEmitter which will get a'timeout'
event iftimeout
is exceeded. Ifrejection
is not defined, timeouts callreject(Error('timeout of ' + timeout + ' exceeded'))
Ifrejection
is defined, it generates the timeout error.rejection
must be one of:- if
rejection
is function, timouts callreject(rejection())
. - otherwise timouts call
reject(rejection)
.
- if
Queue#size(): Number
- returns number of pending promises
Use
const Queue = // allow 25 concurrent promisesPromiseall Queue Queue Queue...