0
我想創建一個簡單的函數來讀取一些json,做一些簡單的處理,並返回一個數組作爲結果。變量未在Javascript中使用嵌套函數和getJSON進行更新
目前,我有下面的代碼。但是,該函數總是返回[]。
如果我移動臨時工到全球範圍內時,它首先返回[],然後它被稱爲數據的第二時間被添加,並且它被稱爲第三時間是兩倍的長度等
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;
}
尋找在其他一些問題上,似乎這可能與異步有關?有沒有辦法讓它同步加載,我想在高圖中繪製數據。
如果你console.log(數據)會發生什麼?它實際上是否包含任何數據? – kennypu 2013-03-11 06:25:57
您可以使AJAX調用同步,但這是一個非常糟糕的主意。查看AJAX回調如何工作的已有答案,已經解釋了數百萬次。 (並停止創建全局變量。) – DCoder 2013-03-11 06:28:02