Neler olup bittiğine dair tartışmalı bir örnek: http://jsfiddle.net/adamjford/YNGcm/20/
HTML:
<a href="#">Click me!</a>
<div></div>
JavaScript:
function getSomeDeferredStuff() {
var deferreds = [];
var i = 1;
for (i = 1; i <= 10; i++) {
var count = i;
deferreds.push(
$.post('/echo/html/', {
html: "<p>Task #" + count + " complete.",
delay: count
}).success(function(data) {
$("div").append(data);
}));
}
return deferreds;
}
$(function() {
$("a").click(function() {
var deferreds = getSomeDeferredStuff();
$.when(deferreds).done(function() {
$("div").append("<p>All done!</p>");
});
});
});
"Her şey bitti!" ertelenen görevler tamamlandıktan sonra görünecek, ancak $.when()
bir dizi Ertelenmiş nesnenin nasıl işleneceğini bilmiyor gibi görünecektir. "Hepsi tamam!" dizi ertelenen bir nesne olmadığından ilk önce gerçekleşir, bu nedenle jQuery devam eder ve yeni yapıldığını varsayar.
Biri gibi fonksiyonlar içine nesneleri geçebilir biliyorum $.when(deferred1, deferred2, ..., deferredX)
ama çözmeye çalışıyorum gerçek sorun kaç Yürütülecek nesneleri olacak bilinmemektedir.
$.when.apply
hiç aynı sonucu elde etmek için.