我可能在Angular中对Promise()的概念并不正确,但是我应该如何修改下面的代码,以便checkExistence()可以返回布尔值?
public checkExistence(value: string): boolean{
var exist = false;
return this.getRefData().then((rec: string[]) => {
return rec.some(el => {
el === value;
});
});
}
private async getRefData() {
return await this.configurationService.retrieveTableData().toPromise();
}
这时,checkExistence()中引发了错误:[ts] Type 'Promise<any>' is not assignable to type 'boolean'
编辑
通过执行以下操作设法摆脱了上述错误:
public checkExistence(value: string): boolean{
var exist = false;
this.getRefData().then((rec: string[]) => {
return rec.some(el => {
return el === value;
});
});
}
现在的问题是该函数实际上不返回任何内容[ts] A function whose declared type is neither 'void' nor 'any' must return a value.
为什么不返回任何东西?
答案 0 :(得分:1)
checkExistence
的回报是一个承诺,可以解决boolean
public checkExistence(value: string): Promise<boolean>{
var exist = false;
return this.getRefData().then((rec: string[]) => {
return rec.some(el => {
el === value;
});
});
}
要在其他地方使用支票checkExistence
,
checkExistence()
.then((value:boolean)=>{console.log(value)})