我是Dojo的新手,而且很難跟隨以下代碼片段。我不明白爲什麼chartData在最後是空的。我基於Dojo站點上的示例創建了此方法。Dojo中的返回數組
的代碼如下:
function(xhr, json, arrayUtil, number, Chart, theme) {
var chartData = [];
var def = xhr.get({
url: "cpuusage.json",
handleAs: "json"
});
def.then(function(res){
var data = [];
arrayUtil.forEach(res.chart, function(chart){
data[chart.x] = number.parse(chart.y);
});
chartData = data;
console.info("chartData1: ", chartData);
}, function(err){
console.error("Failed to load JSON data");
});
def.then中的第一個console.info說,chartData具有正確的值。當我在def.then方法完成後打印chartData的值時,它是空的。
如何確保chartData在def.then調用之後有相同的值。非常感謝
我已經更新後執行我的問題基於以前的答案。 – L4zl0w 2012-08-08 09:34:23
我想我現在明白了。而不是試圖在xhr之外使用chartData,然後我需要從'then'調用中啓動我的圖表,以便chartData可用。所以上面的代碼實際上是正確的,但chartData只能在'then'調用中使用。謝謝您的幫助! – L4zl0w 2012-08-08 10:12:07