问题描述
嗨,我的路由中有两个守卫。
canActivate(
route: ActivatedRouteSnapshot,state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {
const token = localStorage.getItem('token');
if (token) {
if (this.authStore.getUserValue()) {
this.user = this.authStore.getUserValue();
return true;
} else {
return new Promise((resolve,reject) => {
Promise.all([
this.isLoggedIn()
]).then((res) => {
console.log(res[0])
},reject)
})
}
} else {
return new Promise((resolve,reject) => {
Promise.all([
this.isLoggedIn()
]).then((res) => {
console.log(res[0])
},reject)
})
}
}
isLoggedIn(): Promise<usermodel> {
return new Promise((resolve,reject) => {
this.authService.isLoggedIn().subscribe((res) => {
resolve(res.data.user)
},reject)
})
}
运行完美。
但我的第二个守卫不等第一个守卫就跑。
有没有办法像guard
或其他方式一样先运行guard
和第二个async await
?
感谢您的回答。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)