В моем приложении ajax я пытаюсь использовать рекурсивную функцию, внутри которой вызывается другая функция, которая создает глобальную переменную, и я хочу использовать эту переменную внутри рекурсивной функции. Однако я столкнулся с трудностями, потому что не могу получить доступ к этой глобальной переменной внутри рекурсивной функции (хотя она доступна, если я сама вызываю эту функцию). Код для рекурсивной функции приведен ниже.Рекурсивная функция javascript/ajax: не удается получить доступ к глобальной переменной, установленной внутри функции
ajaxCity.displayCell() устанавливает переменную window.cells [], которая содержит массив чисел. Идея состоит в том, чтобы вызвать функцию tree() для каждого из этих чисел.
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]);
}
}
window.cells [] переменная доступна после я запустить функцию один раз, но как я должен изменить процесс так, что он работает так, как я воображая?
Благодарим за помощь!
Редактировать: вот ошибка, которую я получаю.
TypeError: window.cells[topCell] is undefined
если я снова вызвать функцию дерева, она будет работать на один «уровень» глубже, а затем дать ошибку снова и т.д.
============== ==
Спасибо, Джеймс Монтань, как вы указали, проблема в том, что мне нужно дождаться, когда запрос ajax вернется. Еще раз спасибо!