我正在创建用于读取Excel文件的读取器。下面是我的异步函数。
let readExcelhelper2 = async function () {
console.log("readExcelHelper2 - start");
//Parsing the excel file
let reader = new FileReader();
reader.readAsBinaryString(file);
let didErrorOccur = false;
console.log("readExcelHelper2 - mid");
reader.onload = await function () {
console.log("reader.onload");
let data = reader.result;
let workbook = XLSX.read(data, {type: 'binary'});
let wsList = [];
workbook.SheetNames.map(function (sheetName) {
wsList.push(workbook.Sheets[sheetName]);
});
//console.log(wsList);
if (wsList.length !== 1) {
errorState['isError'] = true;
errorState['listOfErrors'].push('The excel file should have exactly one sheet!');
didErrorOccur = true;
}
if (didErrorOccur)
return;
readExcelHelper(wsList[0]);
};
console.log("readExcelHelper2- end");
console.log(errorState);
return {'classifiers': classifiers, 'errorState': errorState};
};
这是调用readExcelHelper2时的控制台日志:
readExcelHelper2 - start
readExcelHelper2 - mid
readExcelHelper2- end
//A bunch of other things
reader.onload
是否要等待reader.onload完成?为什么不这样做?