根据承诺结果返回布尔值

时间:2019-01-16 13:14:49

标签: reactjs promise es6-promise mobx-react tsx

我在处理诺言时感到困惑。 我有一个返回布尔值的函数,关于promise的结果是什么(这是mobx存储操作的一部分)

因此在这里,如果长度大于零,我想返回true,否则返回false。但是当然,在诺言得到解决之前,会返回false

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

我对使用await,async或都不使用它们感到困惑

1 个答案:

答案 0 :(得分:0)

在遵循此answer之后,似乎无法从如此更改为的函数直接返回布尔值

      @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 */
});