本文介绍了我怎么能转换成一个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事件的诺言成异步/等待的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-05 14:38
查看更多