Асинхронные запрос. Преобразования объекта.
Привет, коллеги.
Нужна ваша помощь. Задача: в js загрузить xml-файл. Из полученного XML парсим данные и создаем некий объект. И далее уже работаем с этим объектом. Написал такую реализацию: <script type='application/javascript'> function textGetFile(file) { /* Подготавливаем объект с которым потом будем работать */ var obj = { "title" : "start", "page" : "page start" }; $.get(file,function(answer){ /* Типо тут мы получаем содержимое файла xml и по всякому его обрабатываем. Но для упрощения я делаю простую имитацию. */ obj.title = "It's work!"; console.log(obj); /* Объект изменился! */ },"xml"); /* Возвращаем объект для последующих манипуляций */ return obj; } var result = textGetFile("test.xml"); /* А тут по прежнему не измененный объект :( */ console.log("result: " + result.title + " " + result.page); </script> Код не работает! В строке где вывод в консоль - выводится измененый объект как положено. А вот result попрежнему не измененный! Мне кажется это из-за того что запрос асинхронный, что-то типо нескольких потоков и в основном потоке объект obj не меняется а в в потоке запроса файла он меняется. Подскажите что я не правильно делаю и как мне добится решения моей задачи. |
Конечно дело в асинхронности
строка return obj; срабатывает раньше получения файла |
а как тогда решить мою задачу?
|
Цитата:
Вот обработчик ответа пусть делает все, что нужно по твоему алгоритму... |
Часовой пояс GMT +3, время: 13:16. |