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

  • LAHWF

    LAHWF

    5 Kasım 2009
  • NewsyTech

    NewsyTech

    2 AĞUSTOS 2010
  • Phlearn Photoshop and Photography Tutorials

    Phlearn Phot

    11 EKİM 2011