J'ai une fonction avec un callback qui vérifie si un fichier existe sur mon serveur, le résultat retourné étant "vrai" ou "faux". Mon problème est que j'appelle cette fonction "DoesFIleExist" dans une boucle for avec le "id" calculé plus tôt dans la fonction. Le problème est que chaque fois qu'un des appels de fonctions est résolu et essaie d'appeler "AddResultToPage", il utilise l'identifiant de la dernière itération de boucle forcée, alors qu'il devrait utiliser l'identifiant qui lui a été donné lors de l'appel de la fonction.Appel de fonction inline JavaScript à partir du rappel
La fonction "DoesFileExist" prend un chemin et un rappel en tant que paramètres.
Toute aide serait grandement appréciée, car j'ai regardé en ligne et sur ici mais la plupart des réponses que j'ai trouvées concernent des boutons et des écouteurs d'événement sur les boutons.
DoesFileExist('/XML/'+id.trim()+'.xml',function(data) {
console.log(id.trim()+" "+data);
if (data == "true") {
(function() {
console.log("adding to page - "+id.trim());
AddResultToPage(id,false);
})();
}else{
console.log("the file does not exist");
}
Vous avez besoin d'une fermeture, regardez vers le haut –
Vous devez prendre id de l'espace global et le contrôle qu'il est portée avec var et passe en paramètre. Sinon, id peut être n'importe quoi. (quelqu'un d'autre pourrait le changer en un nombre et casser tout) – Tezra