布尔函数中的Angular Use Promise

时间:2018-07-05 10:40:44

标签: angular promise

我可能在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.为什么不返回任何东西?

1 个答案:

答案 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)})