我有一个异步函数,如果基于先前的请求调用存在实体,则应该返回一个布尔值。这是它的样子:
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
,但是反正有类似的行为吗?
我错过了什么吗?
答案 0 :(得分:3)
你正在否定承诺对象。您需要使用
if (!(await this.vertexExists(entity))) {
或
if (await this.vertexExists(entity).then(x => !x)) {