问题描述
我需要先完成papaparse,然后才能将其移至列表中循环的那一部分(需要填充papaparse)。
在我的代码中,papaparse在循环之后完成了列表的填充,因此我的循环最终在一个空列表上循环。这是我的代码:
const csvData=[];
papa.parse(file,{
header: true,step: function(result) {
csvData.push(result.data)
},complete: function(results,file) {
//console.log('Complete',csvData.length,'records.');
console.log(csvData);
}
});
//loop through the list
for (var i = 0; i < csvData.length; i++){
var jsonObj = csvData[i];
console.log(jsonObj);
let aimObj = jsonToaim(jsonObj);
console.log(aimObj);
}
我该怎么做?我是js新手。非常感谢!
解决方法
您可以将parse
调用包装在一个承诺中,然后等待该承诺:
async function processCsv (file) {
const csvData = await new Promise((resolve) => {
const data = [];
papa.parse(file,{
header: true,step: function (result) {
data.push(result.data);
},complete: function (results,file) {
resolve(data);
}
});
});
for (let i = 0; i < csvData.length; i++) {
// ...
}
}