За последние 24 часа нас посетили 22857 программистов и 1250 роботов. Сейчас ищут 766 программистов ...

Как вернуть объект из $.get()?

Тема в разделе "JavaScript и AJAX", создана пользователем Konstant1n, 8 янв 2019.

  1. Konstant1n

    Konstant1n Активный пользователь

    С нами с:
    14 авг 2017
    Сообщения:
    273
    Симпатии:
    1
    Адрес:
    Волгоград
    обрабатываю текстовый файл
    Код (Javascript):
    1. $.get('data.txt',function(data) {
    2.     var tags = {}, params,
    3.         lines = data.split("\n");
    4.     $.each(lines, function(n, elem) {
    5.         params = elem.split("\t");
    6.         tags[params[0]] = {
    7.             'open':params[1],
    8.             'close':params[2],
    9.             'title':params[3]
    10.         };
    11.     });
    12.    
    13. });
    14. //как здесь получить объект tags?
    15. //не работает
    16. for (var key in tags) {
    17.      alert(tags[key].title + ' ' + tags[key].open + tags[key].close);
    18. }
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.824
    Симпатии:
    738
    Адрес:
    Татарстан
    зачем плодить одинаковые посты?
    по сути ... замыкания... область видимости переменных

    или tags объявляете как глобальную переменную до входа в $.get
    либо обработку через for осуществляете внутри $.get
     
  3. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    @Konstant1n, а ты в курсе, что AJAX работает асинхронно? Т.е. следующая за $.get оператор исполнится до того, как результат опроса придёт. Поэтому вся обработка результата должна быть внутри функции обратного вызова, отрабатывающей по завершению ajax-запроса. Вот и всё
     
    webtask нравится это.