Ok, il me manque probablement quelque chose d'évident, et bien que j'aie essayé de trouver un exemple similaire, je ne peux pas trouver exactement ce que je veux faire. J'ai besoin d'une série d'appels ajax pour exécuter dans un ordre particulier. J'utilise le code suivant pour finaliser une transaction:Problèmes de chaînage différés jQuery
showStandbyDialog();
$.when(function(){console.log('Paying Charges due before transaction');})
.always(this.applyCredit(parseFloat($(this.currentChargesTarget).html()))) // Pay charges due before transaction
.always(function(){console.log('Applying renewals');})
.always(this.applyRenewals()) // Apply Renewals
.always(function(){console.log('Paying renewal charges');})
.always(this.applyCredit(this.renewCart.length * this.renewCost)) // Pay renewal charges
.always(function(){console.log('Applying checkouts');})
.always(this.applyCheckOut()) // Apply checkouts
.always(function(){console.log('Paying checkout charges');})
.always(this.applyCredit(this.cart.length * this.checkOutCost)) // Pay checkout charges
.always(function(){console.log('Applying card replacement');})
.always(this.applyCardReplacement()) // Apply card replacement
.always(function(){console.log('Paying leftover charges');})
.always(this.applyCredit(this.cardCost)) // Pay leftover charges
.always(function(){console.log('Finalizing Transaction');})
.always(function(){ updateCharges(); bfwd.Patron.Transaction.reset(); hideStandbyDialog(); }); // Reset Transaction and clear standby dialog
Maintenant, je l'ai essayé, .done, .alors, et à peu près .anything() mais le code console.log() dans la fonction poignée de this.applyCredit() TOUJOURS se connecter après le fichier console.log ('Finalizing Transaction'). Chaque appel de this.function() renvoie une méthode jquery différée au cas où vous vous poseriez la question.
Certaines de ces fonctions sont-elles asynchrones? Sinon, il n'y a aucune raison d'utiliser des reports. Créez simplement une fonction qui appelle toutes ces autres fonctions dans la séquence appropriée dans la programmation procédurale directe. Si elles sont asynchrones, indiquez-leur le code pour qu'elles puissent évaluer si vous utilisez les API différées de manière appropriée. – jfriend00
Il a dit qu'il s'agissait d'une série d'appels ajax donc j'ai juste supposé ... –
Désolé, je n'ai pas remarqué ces commentaires. Je suppose que c'est pas mal de poster le code. Une seconde. – LordZardeck