Dans mon application ajax, j'essaie d'utiliser une fonction récursive à l'intérieur de laquelle une autre fonction est appelée pour créer une variable globale, et je veux utiliser cette variable à l'intérieur de la fonction récursive. Cependant, je rencontre des problèmes parce que je ne peux pas accéder à cette variable globale dans la fonction récursive (bien qu'elle soit disponible si j'appelle cette fonction par elle-même). Le code de la fonction récursive est ci-dessous.Fonction javascript/ajax récursive: impossible d'accéder à la variable globale dans la fonction
ajaxCity.displayCell() définit une variable window.cells [], qui contient un tableau de nombres. L'idée est d'appeler la fonction tree() pour chacun de ces nombres.
function tree (topCell) {
var ajaxCity = new Ajax();
ajaxCity.displayCell(topCell);
for (var i = 0; i < window.cells[topCell].cKids.length; i++) {
tree(window.cells[topCell].cKids[i]);
}
}
La variable window.cells [] est disponible après je lance la fonction une fois, mais comment dois-je changer le processus afin qu'il fonctionne de la façon dont je me fais?
Merci pour votre aide!
edit: Voici l'erreur que je reçois.
TypeError: window.cells[topCell] is undefined
si je l'appelle à nouveau la fonction de l'arbre, il va travailler pour un « niveau » plus profond, puis donner à nouveau l'erreur, etc
============== ==
Merci, James Montagne, comme vous l'avez souligné, le problème est que j'ai besoin d'attendre que la requête ajax revienne. Merci encore!