code de psuedo: quand (x, y) .then (z);Les rappels d'Ajax tirent dans un ordre inattendu
où y est un appel à une fonction qui fait un appel ajax comme dans:
function y(......){
var p = $.ajax(...........);
p.done(callMeFirst);
return p;
}
Maintenant, je crois comprendre, étant donné que x est déjà résolu lors d'un appel ajax succès « callMeFirst » en cas d'incendie d'abord suivi par « z »
mais ce qui se passe est que « z » feux d'abord, puis « callMeFIrst »
Je ne comprends pas pourquoi ce qui se passe ou comment fixer comme tous nos appels ajax courir à travers « y 'et son traitement post-appel est nécessaire avant tout autre callback pour le gérer.
TIA Rob
C'est parce que ajax est asynchrone. La solution serait d'appeler z dans p.done – vinayr
Je sais que ajax est async ... C'est pourquoi je m'attends d'abord à ce que le 'callMeFirst' se déclenche comme il a été enregistré en premier, puis 'z' pour tirer après cela comme il était deuxième enregistré. Et je ne peux pas le mettre dans p.done comme z dépend à la fois x et y complétant tandis que callMeFirst dépend seulement de l'appel ajax complétant – blackmamba
"quand", "fait" etc sont bien écrit ici: http: // joseoncode.com/2011/09/26/a-walkthrough-jquery-deferred-and-promise/ –