Skip to content

Instantly share code, notes, and snippets.

@skatenerd
Created April 3, 2015 06:48
Show Gist options
  • Save skatenerd/e99da9b399f8b0f1aba5 to your computer and use it in GitHub Desktop.
Save skatenerd/e99da9b399f8b0f1aba5 to your computer and use it in GitHub Desktop.
parallel http
var ParallelHttp = {
forkjoin: function(requests, join_handler){
var results = [];
var identity = function(i){return i};
$.map(requests, function(request){
var old_success = request.success || function(){};
var old_error = request.error || function(){};
var old_complete = request.complete || function(){};
request.success = function(data) {
old_success(data);
results.push(true);
}
request.error = function() {
old_error();
results.push(false);
}
request.complete = function(){
old_complete();
var all_completed = (results.length == requests.length);
if(all_completed){
var all_succeeded = results.every(identity);
join_handler(all_succeeded);
}
}
$.ajax(request);
});
},
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment