Skip to content

Instantly share code, notes, and snippets.

@rlmcneary2
Last active December 6, 2020 19:48
Show Gist options
  • Save rlmcneary2/1873879 to your computer and use it in GitHub Desktop.
Save rlmcneary2/1873879 to your computer and use it in GitHub Desktop.
Demonstrate use of jQuery $.ajax with an array of jqXHR Deferred Promise objects passed to the $.when function.
// Seeing this through jsfiddle?
// Get the source from github gist: https://gist.github.com/1873879
// Create an array with two jqXHR objects from two separate $.ajax calls.
var arrJqx = [];
// This call has no delay and the response will come back from the server
// almost immediately.
arrJqx.push($.ajax ({
url: "/echo/json/",
dataType: "json",
data: {json: "{\"text\": \"foo\"}"},
type: "POST"
}));
// This call has a five second delay before the response is returned by the
// server.
arrJqx.push($.ajax ({
url: "/echo/json/",
dataType: "json",
data: {json: "{\"text\": \"bar\"}", delay: 5},
type: "POST"
}));
// The server response is not displayed in an alert until both calls return.
// The done function callback will iterate over the arguments passed to the
// function and output the JSON stringified result of the jqXHR object, there
// should be two alerts.
$.when.apply($, arrJqx).done(function(){
$.each(arguments, function(index, arg) {
alert (JSON.stringify(arg[2]));
});
});
@rlmcneary2
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment