Глобальный массив JavaScript теряет значение вне функции get jQuery [duplicate]

Kalif Vaughn спросил: 27 ноября 2017 в 05:40 в: javascript

На этот вопрос уже есть ответ:

  • 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?

0 ответов