javascript - 如何从类内部调用的函数返回值

标签 javascript typescript angular5

我试图在用户单击“导出”按钮时显示加载程序。我创建了一个单独的类来执行此导出功能。

这是我尝试过的代码。

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

HTML

<app-loader [showLoader]="showLoader"></app-loader>

ts

import { csvExport } from '../../classes/csvExport';

export class DashboardSpaComponent implements OnInit {
    public csvExport: csvExport = new csvExport();

    // LOADER FLAG
    public showLoader: boolean = false;

    downloadPDF() {
        this.showLoader = true;
        //call class
        this.csvExport.download();

    }
}

csvExport.ts

export class CsvExport {
    download() {
        // code here to do export 
    }
}

最佳答案

您需要返回这样的 Promise。

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;
})

.then 在 Promise 被解析时被调用(调用解析函数) 您可以通过here了解更多

关于javascript - 如何从类内部调用的函数返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55945981/

相关文章:

typescript - 选中/未选中时如何选中/取消选中ion-select中的所有选项选择ionic3中的所有选项

angular - 在 Angular 4/5 中编译动态 HTML——类似于 Angular JS 中的 $compile

angular2-routing - 如何在 ngx-admin nebular 和 angular 5 中向路由选项卡集组件添加参数

javascript - app android - 外部资源实现

javascript - 为什么 Node (Javascript)中缺少分号不会引发错误?

类型 'offsetWidth' 上不存在 Angular 属性 'Element'

javascript - 用 typescript 写这个开关/案例的更好方法?

Javascript正则表达式-包含列表中任意顺序的单词和单词

javascript - Node 的 q.fcall 返回一个空对象

visual-studio-2012 - 当前项目的 TypeScript 文件看不到 TypeScript 的链接文件