我想创建一个简单的函数来读取一些 json,进行一些简单的处理,然后返回一个数组作为结果。
我目前有下面的代码。但是,该函数始终返回 []。
如果我将 temps 移动到全局范围,它首先返回 [],然后第二次调用它的数据被添加,第三次调用它的长度增加一倍,等等。
function getTempData() {
var temps = [];
$.getJSON('temp.json', function(data) {
data = data.observations.data;
for(var i = 0; i < data.length; i++) {
year = parseInt(data[i].aifstime_utc.substr(0, 4));
month = parseInt(data[i].aifstime_utc.substr(4, 2));
day = parseInt(data[i].aifstime_utc.substr(6, 2));
hour = parseInt(data[i].aifstime_utc.substr(8, 2));
min = parseInt(data[i].aifstime_utc.substr(10, 4));
time = Date.UTC(year, month, day, hour, min);
temps.push([time, data[i].air_temp]);
}
});
return temps;
}
看看其他一些问题,似乎这可能与异步有关?有没有办法让它同步加载,我想在高图中绘制数据。