Я уверен, что это просто, но я запутался в проблеме с областью видимости в Javascript.Я делаю следующее:
$.get(url, function (data){console.log(data);});
Эта часть работает нормально - я вижу нужную строку в консоли.Но на самом деле я хочу взять эту переменную данных и поместить ее в строку.Примерно так (не работает):
string = $.get(url, function (data){return data;});
Это дает string
значение [object XMLHttpRequest]
.
Чего мне не хватает?
Упс
Да, мне не хватает того факта, что Ajax, как следует из названия, является асинхронным.Спасибо, что дали мне пощечину по лбу, в которой я нуждался, все.
Послесловие
Причина, по которой я не просто работал с результатами внутри самой функции обратного вызова, заключается в том, что мне действительно нужно сделатьнесколько запросов AJAX каждые несколько секунд, собирать данные и добавлять их все на страницу, когда все они сделаны.
Теперь у меня есть такая работа с небольшой функцией закрытия - запросы выполняются в цикле, а данные передаются в замыкание.Когда таймер отключается, я вызываю функцию закрытия без аргументов, которая говорит ей: «добавьте свой предыдущий пакет данных на страницу (к настоящему времени запросы наверняка выполнены), очистите кэш и подготовьтесь к тому, чтобы начать получать новые данные изобратные вызовы AJAX в моем цикле. "
Что (надеюсь) показывает, что я все-таки не идиот.:)