大佬教程收集整理的这篇文章主要介绍了angular – 否定守卫中的承诺结果,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
但是,我试图做相反的事情,看看用户何时没有登录,并且它无法正常工作.
我尝试了一些简单的事情(添加一个!运算符),希望它可以工作:
@Injectable() export class AuthGuard implements CanActivate { constructor(private authservice: AuthservicE) {} canActivate() { return !this.authservice.isLoggedIn(); } }
但是,这总是返回一个假值,并且路径永远不会激活.
这是我的isLoggedIn()函数的相关摘录:
isLoggedIn(): Promise<Boolean> { var component = this; return new Promise((resolve,reject) => { component.queryForUser((user) => { resolve(user != null); }); } }); }
如果用户不等于null,则他登录并且promise以true结算.否则,错误.
虽然我可以简单地添加一个参数来指定我要查找的状态,或者甚至创建一个isnotLoggedIn()函数,但是具有相同的逻辑但反转,我问,有没有办法否定对于canActivate的promise的决心的价值()?
相反,promise结果应映射到否定结果
canActivate() { return this.authservice.isLoggedIn().then(result => !result); }
要么
async canActivate() { return !(await this.authservice.isLoggedIn()); }
等待的括号……是可选的,用于可读性.
以上是大佬教程为你收集整理的angular – 否定守卫中的承诺结果全部内容,希望文章能够帮你解决angular – 否定守卫中的承诺结果所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。