jQuery Différé: $.lors de la (), avec de multiples objets
J'ai besoin d'une méthode pour récupérer les différents scripts avec un rappel.
Cette méthode fonctionne bien:
fetchScripts:function() {
var _this=this;
$.when(
$.ajax({
url:_this.url + 'library/script-one.js',
type:'get',
cache:true
}),
$.ajax({
url:_this.url + 'library/script-two.js',
type:'get',
cache:true
}),
{ .... },
$.ajax({
url:_this.url + 'library/script-n.js',
type:'get',
cache:true
})
).then(function() {
console.log('fetch is done');
})
},
Mais j'aimerais plus de généraliser la méthode, car redundany est en augmentation.
Est-il possible de passer une promesse de $.lorsque()?
Ci-dessous ma première tentative, mais l'url est toujours le même, c'est à dire 'script-n.js'
Peut-être que j'ai raté le point et de vous pourrait illustrer une plus de "beauté" solution
fetchScripts:function() {
this.deferred=new $.Deferred();
this.promise=this.deferred.promise();
var _this=this;
$.each([
'script-one.js',
'script-two.js',
( .... ),
'script-n.js'
],function() {
_this.script=this;
_this.promise.then(function(){
return $.ajax({
url:_this.url + 'library/' + _this.script,
type:'get',
cache:true
})
});
});
$.when(
this.promise
).then(function() {
console.log('fetch is done');
});
this.deferred.resolve();
},
OriginalL'auteur campari | 2013-07-11
Vous devez vous connecter pour publier un commentaire.
Vous avez encore besoin de $.lors de l'. Mais au lieu de cela, créer un tableau de Deferreds (ou promesse) et puis appliquer à $.quand:
Sinon pour étendre les paramètres par défaut, vous pouvez simplement utiliser $.ajax(par défaut).
arguments
magie variable à l'intérieur de la fonction anonyme transmise à.then
;J'ai remarqué que lors de l'utilisation de l'époque(), si la requête échoue, vous entrez dans sa fonction en dépit de ne pas être tout fait, alors qu'avec done(), il ne sera exécuté que lorsque le dernier à rester est fini, peu importe si d'autres pas.
OriginalL'auteur Daff
Essayer
$.map
, pas$.each
. Aussi justeitem
, pasitem.script
🙂oui, erreur de copier coller
OriginalL'auteur Arun P Johny