Javascript 如何从类内调用的函数返回值

Javascript 如何从类内调用的函数返回值,javascript,typescript,angular5,Javascript,Typescript,Angular5,当用户点击导出按钮时,我试图显示一个加载器。我已经创建了一个单独的类来实现这个导出功能 这是我尝试过的代码 我的问题是加载程序设置为true,但我不确定在导出完成后如何将其设置为false HTML csvExport.ts 你需要回报这样的承诺 export class CsvExport { download() { return new Promise((resolve, reject) => { // code here to do e

当用户点击导出按钮时,我试图显示一个加载器。我已经创建了一个单独的类来实现这个导出功能

这是我尝试过的代码

我的问题是加载程序设置为true,但我不确定在导出完成后如何将其设置为false

HTML csvExport.ts
你需要回报这样的承诺

export class CsvExport {
    download() {
        return new Promise((resolve, reject) => {
           // code here to do export
           // on completion call this. resolve()
        }) 
    }
}
然后像这样使用下载功能

this.csvExport.download().then(()=>{
    this.showLoader = false;
})
。然后在解析承诺时调用
(调用resolve函数)
您可以从

使用observable或promise@Madhawa,是的,我做了一些调查,告诉我承诺。但是我不知道如何在这里实现它,基本上你必须使你的下载函数异步。因此,当下载完成后,你可以解析它。从downloadPDF函数中,你可以在下载完成后使用
this.csvExport.download()。然后(()=>{this.showLoader=false;})
。下面是一个角度的例子,我得到了一个错误类型ERROR:cannotread属性'then'of undefinedInside download(),我在函数中调用了其他函数。那么我该如何使用这个返回新承诺呢?您可以在承诺中添加所有函数调用,在最后一个过程中,调用resolve()返回新承诺((resolve,reject)=>{this.generateCSV(“”;resolve();}),我像下面这样做了。我有一些海量数据要输出。由于它不起作用,请帮助从
generateCSV
返回承诺,或者将解析函数传递到
generateCSV
并在
generateCSV
内部调用它。完成后是的,我在generateCSV()内尝试了此重新返回承诺,但这会给我错误类型错误:无法读取未定义的属性“then”
export class CsvExport {
    download() {
        // code here to do export 
    }
}
export class CsvExport {
    download() {
        return new Promise((resolve, reject) => {
           // code here to do export
           // on completion call this. resolve()
        }) 
    }
}
this.csvExport.download().then(()=>{
    this.showLoader = false;
})