我在处理诺言时感到困惑。 我有一个返回布尔值的函数,关于promise的结果是什么(这是mobx存储操作的一部分)
因此在这里,如果长度大于零,我想返回true,否则返回false。但是当然,在诺言得到解决之前,会返回false
@action
public isUserAdmin(): boolean {
this.user!.getIdTokenResult().then((idTokenResult) => {
return idTokenResult.groups.length > 0;
});
return false;
}
我对使用await,async或都不使用它们感到困惑
答案 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 */
});