Асинхронная функция, которая разрешает Promise, а затем возвращает логическое значение? - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть асинхронная функция, которая должна возвращать логическое значение, если сущность существует на основе предыдущего вызова запроса. Вот как это выглядит:

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 голосов
/ 30 апреля 2018

Вы отрицаете объект обещания. Вам нужно будет использовать

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

или

if (await this.vertexExists(entity).then(x => !x)) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...