【发布时间】:2014-12-11 11:45:37
【问题描述】:
我使用这个example 希望在 AJAX 调用后返回数据。基本上我执行 AJAX 调用一个回调函数来处理并返回所需的最终数据。但是,当我执行代码时,分配给获取数据的变量是未定义的,并且回调函数在之后正确执行......
这是执行 AJAX 调用的函数:
function getgraphdata(callback){
$.ajax({
type: "GET",
url: "DiCAST_hourly.csv",
dataType: "text",
async: false,
success: callback,
error: function(){alert("Error")}
});
};
这是回调函数:
function processgraphData(allText) {
var result = [];
var allTextLines = allText.split(/\r\n|\n/);
for (var i=1; i<allTextLines.length; i++) {
if (allTextLines[i].split(",")[0] == 'LETO') {
var line = allTextLines[i].split(",");
for (var j = 1; j<line.length - 5; j += 5){
result.push([line[j],line[j+1],line[j+2]]);
};
break;
};
};
console.log("OK");
console.log(result);
return result;
};
这些是我执行此代码的行:
console.log("OKOK");
var result = getgraphdata(processgraphData);
console.log(result);
console.log("OKOK");
这就是浏览器返回的内容:
OKOK getinfo.js:135
OK getinfo.js:86
[Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3], Array[3]] getinfo.js:87
undefined getinfo.js:137
OKOK
【问题讨论】:
-
尝试使用:成功:函数(响应){回调(响应); }
-
没有任何变化,结果相同。