本文介绍了我怎么能转换成一个onload事件的诺言成异步/等待的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下的打字稿,我想用异步
/ 等待
上。但我似乎无法在我的头上理清如何做到这一点。
私人getWorkbookFromFile2(excelFile:文件):无极< xlsx.IWorkBook> {
VAR loadedPromise =新承诺< xlsx.IWorkBook>((解决,拒绝)=> {
VAR读卡器=新的FileReader(); reader.onload =(事件:任意)=> {
VAR数据= event.target.result; VAR工作簿= xlsx.read(数据,{类型:'二进制'}); 的console.log(workbook.SheetNames);
解决(练习册);
};
reader.readAsBinaryString(excelFile);
}); 返回loadedPromise;
}
有人能告诉我这个打字稿承诺如何转化为使用异步
/ 等待
解决方案
async function getWorkbookFromFile2(excelFile: File) {
return new Promise<xlsx.IWorkBook>((resolve, reject) => {
var reader = new FileReader();
reader.onload = (event: any) => {
var data = event.target.result;
var workbook = xlsx.read(data, { type: 'binary' });
console.log(workbook.SheetNames);
resolve(workbook);
};
reader.readAsBinaryString(excelFile);
});
}
Example consumption:
async function caller() {
var workbook = await this.getWorkbookFromFile2(this.getFile());
// The 'workbook' variable is an IWorkBook...
}
这篇关于我怎么能转换成一个onload事件的诺言成异步/等待的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!