I am trying chaining an array of jQuery Deferred objects together, with the aim to call a final function once everything is resolved.
However, I am unable to get $.when.apply($, deferreds) to work, but I can't figure out why it is not working.
function callBackend(count) {
var deferred = $.Deferred();
setTimeout(function() {
$("div").append("<p>" + count + "</p>");
deferred.resolve();
}, 50);
return deferred.promise();
}
$(function() {
$("a").click(function() {
var promises = [];
for (i = 1; i <= 10; i++) {
var deferred = $.Deferred();
callBackend(i).then(function() {
deferred.resolve();
});
promises.push(deferred.promise());
}
$.when.apply($, promises).then(function() {
$("div").append("<p>All done!</p>");
});
});
});
I have created a fiddle to illustrate the problem. Anyone got an idea?