解析Promise的异步函数然后返回一个布尔值?

时间:2018-04-30 13:19:59

标签: typescript promise

我有一个异步函数,如果基于先前的请求调用存在实体,则应该返回一个布尔值。这是它的样子:

async vertexExists(properties) {
    const nbVertices = await this.countVertices(properties);
    if (nbVertices !== 0) {
      return true;
    }
    return false;
  }

然后在另一个函数中,我调用vertexExists

if (await !this.vertexExists(entity)) {
        const response = await this.gremlinQuery(query);
        return response.body.result.data;
      }

但似乎不等待nbVertices解决,而是立即告诉我false

现在,我知道异步函数应该返回Promise而不是boolean,但是反正有类似的行为吗?

我错过了什么吗?

1 个答案:

答案 0 :(得分:3)

你正在否定承诺对象。您需要使用

if (!(await this.vertexExists(entity))) {

if (await this.vertexExists(entity).then(x => !x)) {