SORU
8 ŞUBAT 2013, Cuma


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
8 ŞUBAT 2013, Cuma


.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 :-)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • JTechTalk

    JTechTalk

    11 Temmuz 2010
  • Matthew Pearce

    Matthew Pear

    9 AĞUSTOS 2009
  • The Weavers of Eternity Paracord Tutorials

    The Weavers

    1 Ocak 2014