Javascript 如何从类内调用的函数返回值
当用户点击导出按钮时,我试图显示一个加载器。我已经创建了一个单独的类来实现这个导出功能 这是我尝试过的代码 我的问题是加载程序设置为true,但我不确定在导出完成后如何将其设置为false HTML csvExport.tsJavascript 如何从类内调用的函数返回值,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
你需要回报这样的承诺
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;
})