Я посмотрел в Вашем API и в этом примере, но мне не удается понять Ваше использование хорошо.
var def1 = $.Deferred();
var def2 = $.Deferred();
var def3 = $.Deferred();
var p1 = def1.promise();
var p2 = def2.promise();
var p3 = def3.promise();
$.when(p1, p2, p3).done(function(rs1, rs2, rs3) {
LOG('When complete: '+rs1+', '+rs2+', '+rs3); // Results are in the order of the promises, regardless of the order they resolved in
});
def1.resolve('foo');
def3.resolve('bar');
setTimeout(function() {
def2.resolve('AJAX!'); // No output is sent until this one returns
}, 2000);
function LOG(msg) {
$('#log').append(''+msg+'
');
}
An example of using when() to wait for all promises
Кто-то знает, как оно функционирует?