我正在尝试使用 JQuery .get() 方法和 javascript for 循环来处理来自外部文件的一些数据。我已经阅读了几个小时关于 stackoverflow 回调的闭包和返回值,但我仍然很困惑为什么这不起作用。
对于内部回调函数,变量headers和countryData在范围内不是全局的吗?在回调函数中为它们分配了预期的值,但是一旦完成,我如何访问它们?并且可能是一个不使用 alert() 函数的例子?
function processData(inCSV){
var headers;
var countryData = [];
$.get(inCSV, function(data) {
var lines = data.split('\r\n');
for(var i=0;i<=lines.length-1;i++){
var lineData = lines[i].split(',');
if(i != 0){
countryData[lineData[1]] = lineData.slice(2,lineData.length);
} else {
headers = lineData.slice(2,lineData.length);
}
}
console.log('inside',headers); // output 'inside ["1971", "1972", "1973" ...'
console.log('inside',countryData['Brazil']); // output 'inside ["56.4", "54.6", ..'
});
console.log('outside',headers); // output 'outside undefined' ...!?
console.log('inside',countryData['Brazil']); // output 'outside undefined' ...!?
}