function near_home(lat,long,miles) {
var url = "api_url";
var places = [];
$.getJSON(url, function(data) {
$.each(data['results'], function(i, place) {
places.push(place);
});
console.log(places);
});
console.log(places);
return places;
}
所以第一个console.log()将返回所需的对象。但第二个控制台方法导致空数据。我已经多次重写了这个东西,似乎无法找到这种疯狂的理由。我错过了什么?
答案 0 :(得分:2)
AJAX请求是异步的。您需要在回调中执行以下所有代码。
可能的解决方案是:
function near_home(lat,long,miles,cb) {
var url = "api_url";
var places = [];
$.getJSON(url, function(data) {
$.each(data.results, function(i, place) {
places.push(place);
});
cb(places);
});
}
使用此功能时,请按以下方式调用:
near_home(lat, long, miles, function(places) {
// your code using the returned array
});
答案 1 :(得分:0)
getJSON()
方法是异步的,因此在第二个console.log-statement中不会填充位置。