Ne mu $.ne zaman.($, someArray) geçerli mi?
reading about Deferreds and Promises ben $.when.apply($, someArray)
karşıya geliyor. Bu tam bir açıklama için arıyorum bana biraz karışık geldibir satırtam olarak nasıl işlediğini (tüm kod parçacığını değil). İşte bazı bağlam:
var data = [1,2,3,4]; // the ids coming back from serviceA
var processItemsDeferred = [];
for(var i = 0; i < data.length; i ){
processItemsDeferred.push(processItem(data[i]));
}
$.when.apply($, processItemsDeferred).then(everythingDone);
function processItem(data) {
var dfd = $.Deferred();
console.log('called processItem');
//in the real world, this would probably make an AJAX call.
setTimeout(function() { dfd.resolve() }, 2000);
return dfd.promise();
}
function everythingDone(){
console.log('processed all items');
}
CEVAP
.apply
bağımsız değişken bir dizi ile bir işlevi çağırmak için kullanılır. Dizideki her öğe alır ve fonksiyonu parametre olarak her kullanır. .apply
içerik (this
) fonksiyonu içinde değiştirebilir.
Hadi $.when
al. Derdi ki "tüm bu sözler giderilir... bir şey yaparız." Parametre (değişken) sonsuz sayıda alır.
Senin durumunda, söz dizisi var; kaç 7* *geçen sen bilmiyorsun. Dizinin kendisi 8 ** geçen parametrelerini sözler, bir dizi değil, olmasını bekler, çünkü bu iş olmaz.
.apply
burada devreye giriyor. Aldığı dizi ve aramalar $.when
her öğe gibi bir parametre (ve yapar emin this
ayarlanır jQuery
/$
), Bu yüzden nasıl :-)
Nasıl geçerli zaman geçerli milisaniye...
Ne zaman "ölü" bir nesne içi...
Nasıl raylar zaman geçerli 10 gün ekle...
Android Geçerli zaman damgası mı?...
Nasıl bir toplu iş dosyası geçerli diz...