Je suis en train d'utiliser le jQuery.les tirs de deux requêtes ajax et ensuite appeler la fonction après les deux demandes ont terminé. Voici mon code:
var count = 0;
var dfr;
var showData = function(data) {
dfr.resolve();
alert(count);
// Do something with my data data received
};
var method1 = function() {
dfr = $.Deferred();
return $.ajax('localhost/MyDataService/DataMethod_ReturnsData', {
dataType: "jsonp",
jsonp: "$callback",
success: showData
});
};
var method2 = function() {
return $.ajax('localhost/MyDataService/DataMethod_ReturnsCount', {
dataType: "jsonp",
jsonp: "$callback",
success: function(data) {
count = data.d.__count;
}
});
};
$.when(method1(), method2())
.then(showData());
Toutefois, cela ne fonctionne pas comme prévu. Appel Ajax dans method1 renverra les données qui seront utilisées dans showData() et de l'appel Ajax dans method2 sera de retour le comte qui est assined à var comte et plus tard utilisé dans showData().
Mais quand je lance le code ci-dessus, method1 est appelée, puis method2 et puis showData laisser les données dans showData comme "indéfini". Comment puis-je obtenir ce par le biais d' $.quand, qui, autant que je sache produit uniquement lorsque les deux fonctions retournant $.promesse qui sont exécutées. Je veux que les deux appels ajax doit être appelé en parallèle et, plus tard, être affichés les résultats sur la base des résultats des deux appels.