Я пытаюсь объединить воедино массив отложенных объектов jQuery, чтобы вызвать окончательную функцию после того, как все решено.
Однако я не могу получить $ .when.apply ($, deferreds) работать, но я не могу понять, почему это не работает.
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>");
});
});
});
Я создал скрипку, чтобы проиллюстрировать проблему.У кого-нибудь есть идея?
http://jsfiddle.net/YNGcm/2244/