Не удается получить доступ к внешним переменным из функции get jquery

Я пытаюсь превратить CSV в ассоциативный массив, но функция $.get не меняет внешнюю переменную textData

function csvToArray(filename){

var textData;
var headers = new Array(),
    dataValues = new Array();

$.get(filename, function(data){
    textData = data;
});

var dataArray = textData.split('\n');
headers = dataArray[0].split(',');

for(var i = 1; i<dataArray.length; i++){
    var thisLine = dataArray[i].split(','),
        tempArray = new Array();

    for(var j = 0; j<thisLine.length; j++){
        tempArray[headers[j]] = thisLine[j];
    }

    dataValues.push(tempArray);
}

return dataValues;

}

Почему textData не устанавливается?

1 ответ

Решение

Получить асинхронный

Таким образом, к моменту установки textData остальные операторы уже выполняются.

Так что рассмотрите возможность переноса заявлений после get внутрь обратного вызова, где textData заполняется, и тогда обработка может быть сделана на нем.

Другие вопросы по тегам