pending-queue
pending-queue
ensures a certain asynchronous method only run once, and queues listeners which are registered to it.
Install
$ npm install pending-queue --save
Usage
const Queue = let counter = 0const queue = { return { counter ++ } } { queue} // 3, 1// 3, 1// 3, 1 // So the load function ran only once.
new Queue({load, stringify})
- load
function(...params)
the method to get the value - stringify
function(params)=JSON.stringify
stringify the parameters as the key to queue all asynchronous requests.
Returns EventEmitter
, and key
as the event name, so you can use queue.listenerCount(key)
to see if there are pending tasks.
Events
- load
.add(...params)
- params
Arguments
which will be passed intoload
Returns Promise
.addWithKey(key, ...params)
- key
String
Return Promise
Specifies the key ourself, and avoid using options.stringify
to serialize the key from params
.
But pay attension that there should be a consistent one-to-one match between key
and params
, or make sure that you exactly know what you are doing.
License
MIT