Я явно пишу слишком много CoffeeScript, так как теперь я понимаю, что у меня нет даже базового понимания сферы в чистом JS.Сфера применения JavaScript/jQuery
После игры на некоторое время, я не могу понять проблему с following--
$(document).ready(function() {
var myUrl = "http://notimportant.com/"
var photos = getPhotos(myUrl);
console.log(photos); //undefined
});
function getPhotos(url) {
var a;
$.get(url, function(data) {
a = data["photoset"]["photo"];
console.log(a); //my object
});
return a;
}
Если я ставлю console.log (а) заявление на линии прямо под «вар а = данные [ "фотосет"] [ "фото"];» он показывает, что он правильно делает запрос GET, который я ищу. Но я не могу передать этот объект обратно в свой основной блок кода, где я хочу манипулировать им.
Заранее спасибо.
'$ .get' является асинхронным. Операция 'return a; 'возвращается немедленно (поэтому вы видите' undefined' в своей консоли) после того, как сделан ваш 'get'. Второй аргумент в get, 'function (data)' - это ваш обратный вызов, который выполняется, когда возвращается ответ ajax (с соответствующими данными, которые вы видите на своей консоли). Чтобы манипулировать данными, вы можете вызывать функцию из вашего обратного вызова 'get'. – Jack