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

  • MC JIN'S OLD YouTube CHANNEL

    MC JIN'S OLD

    2 Kasım 2008
  • ExcelIsFun

    ExcelIsFun

    16 ŞUBAT 2008
  • jedimasterkyle

    jedimasterky

    11 ŞUBAT 2006