【发布时间】:2020-05-30 15:06:48
【问题描述】:
我有一个承诺,可以解析Read Excel Service 中的变量this.data,如下所示,
parseExcel(excelFile): Promise<any>
{
/* wire up file reader */
const target: DataTransfer = <DataTransfer>(excelFile.target);
if (target.files.length !== 1) throw new Error('Cannot use multiple files');
const reader: FileReader = new FileReader();
return new Promise((resolve, reject) => {
reader.onload = (e: any) =>
{
/* read workbook */
const bstr: string = e.target.result;
const wb: XLSX.WorkBook = XLSX.read(bstr, { type: 'binary' });
/* grab first sheet */
const wsname: string = wb.SheetNames[0];
const ws: XLSX.WorkSheet = wb.Sheets[wsname];
/* save data */
this.data = <AOA>(XLSX.utils.sheet_to_json(ws, { header: 1 }));
console.log("BOM PARSE SERVICE LOG: " , this.data)
resolve(this.data);
};
reader.readAsBinaryString(target.files[0]);
})
}
我现在正尝试在此处访问已解析的数组
async ReadExcel(event)
{
return new Promise<Object>((resolve, reject) =>
{
var excelContents = this.parser.parseExcel(event).then(function(value)
{
return value
}
console.log("New Quote Component Log: ", excelContents)
//need var excelContents to only contain the array and not contain the value of the promise object
}
)}
}
后一个函数中的日志语句让我回到了这个......
有没有办法让变量excelContents 只取数组的值而不是整个promise 的值?
【问题讨论】:
标签: javascript arrays typescript promise