Je suis lecture sur les différés et les promesses et je continue à tomber sur $.when.apply($, someArray)
. Je ne sais pas exactement ce que cela fait, je cherche une explication qui une ligne fonctionne exactement (pas l'extrait de code entier). Voici un peu de contexte :
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');
}
1 votes
.done()
peut être utilisé à la place de.then
dans ce cas, juste pour info2 votes
Pour info, il existe un portage différé de underscore qui permet de passer un tableau unique à
_.when
donc vous n'avez pas besoin d'utiliserapply
0 votes
En savoir plus sur
.apply
: developer.mozilla.org/en-US/docs/JavaScript/Référence/ .0 votes
connexe : stackoverflow.com/questions/1986896/
1 votes
L'article auquel l'OP fait référence dans sa première phrase a changé d'emplacement - il se trouve maintenant à : flaviocopes.com/blog/deferreds-and-promises-in-javascript .