Skip to content

Instantly share code, notes, and snippets.

@timruffles
Last active August 29, 2015 14:15
Show Gist options
  • Save timruffles/ae6d30dec332af69513f to your computer and use it in GitHub Desktop.
Save timruffles/ae6d30dec332af69513f to your computer and use it in GitHub Desktop.
quick promise based queue sketch
function queue(concurrency) {
var outstanding = [];
return function(fn) {
outstanding.push(fn);
if(outstanding.length < concurrency) {
pop();
}
}
function pop() {
if(outstanding.length > 0) {
var getPromise = outstanding[0];
getPromise().finally(function() {
outstanding.shift();
pop();
});
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment