Ответ 1
TypeScript теперь поддерживает асинхронные функции для двигателей, которые имеют встроенную поддержку генераторов ES6, например. Node v4 и выше. Асинхронные функции имеют префикс с ключевым словом async; Ожидание приостанавливает выполнение до тех пор, пока не будет выполнено обещание возврата асинхронной функции и не восстановит значение из возвращенного обещания. - Источник
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);
});
}
Пример потребления:
async function caller() {
var workbook = await this.getWorkbookFromFile2(this.getFile());
// The 'workbook' variable is an IWorkBook...
}