вернуть логическое значение в соответствии с обещанным результатом - PullRequest
0 голосов
/ 16 января 2019

Я запутался здесь в обработке обещания. У меня есть функция, которая возвращает логическое значение относительно результата обещания (это часть действий магазина mobx)

поэтому здесь, если длина больше нуля, я хочу вернуть true, иначе вернуть false. но, конечно, до того, как обещание будет выполнено, возвращается false

@action
  public isUserAdmin(): boolean {
    this.user!.getIdTokenResult().then((idTokenResult) => {
      return idTokenResult.groups.length > 0;
    });
    return false;
  }

Я запутался в использовании await, async или ни одного из них

1 Ответ

0 голосов
/ 16 января 2019

после этого ответа кажется, что невозможно как-то вернуть логическое значение непосредственно из функции, поэтому изменилось на

      @action
      public isUserAdmin(): Promise<boolean> {
-ret-->   return this.user!.getIdTokenResult()
          .then((idTokenResult) => {
            return idTokenResult.groups.length > 0;
          })
          .catch((e) => {
            return false;
          });
      }

тогда внутри компонента получим как

  myStore!.isUserAdmin().then((result) => {
  /* and this result is wanted boolean */
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...