Callback queue
Node.js callback queue. Can be used with browserify as well.
Idea is to queue callbacks, when same function wants to be called at the same time
by different callers.
One example would be conserving resources spent on outgoing http requests.
npm install callback-queue -S
Example usage
callbackQueue.add(String, Function)
: queues callbacks based on key attributecallbackQueue.remove(String, Error)
: calls queued callbacks with Error argument
const callbackQueue = require('callback-queue');
const request = require('request');
function performOutgoingRequest(url, next) {
const callback = callbackQueue.add(url, next);
if (!callback) {
return;
}
request(url, callback);
}
for (let i = 0; i < 100; i++) {
performOutgoingRequest('https://google.com', function niceCallback(err, resp, body) {
});
}
for (let x = 0; x < 100; x++) {
performOutgoingRequest('https://google.com', function niceCallback(err, resp, body) {
});
}
callbackQueue.remove('https://google.com', new Error('cancel it!'));