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

  • CaptainDisillusion

    CaptainDisil

    18 EYLÜL 2007
  • guillaume2111's channel

    guillaume211

    19 Kasım 2006
  • Rayone GB

    Rayone GB

    14 Temmuz 2007