На этот вопрос уже есть ответ:
- How do I return the response from an asynchronous call? 32 ответа
Я читал о "подъеме", "объеме" и "обратных вызовах", но все еще не могу решить простую проблема.
Сначала я определяю глобальный массив в JavaScript (вверху страницы):
var thefileNames = [];
Я использую функцию jQuery для получения содержимого папки и сохраните их в этом массиве:
jQuery.get(order, function(data) {
$(data).find("a:contains(.txt)").each(function() {
thefileNames.push($(this).attr("href"));
console.log(thefileNames);
})
});
В консоли я буду видеть обновление для каждого файла в каталоге, пока не получу нечто подобное в end (там есть 3 файла):
File1.txt
File2.txt
File3.txt
Таким образом, информация четко указана в "thefileNames". Однако, если я пойду куда-нибудь еще в своем коде и использую:
console.log(thefileNames);
, я получу такой результат:
[]
я не буду понять это, учитывая, что"thefileNames" является глобальной переменной . Почему значение удаляется, когда я покидаю функцию jQuery?