angular - 角度多可观察守卫不按顺序运行
问题描述
嗨,我的路由中有两个警卫。
我的第一个guard
就像下面的代码
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
?
谢谢你的回答。
解决方案
推荐阅读
- angular - 自定义样式以在角度 6 上对元素进行条带化,不影响 UI
- javascript - 如何将文本区域中突出显示的文本提交到数据库中
- angular - 如果分配了单击侦听器,则在组件中检测 Angular 2+
- android - 如何在自定义 Recyclerview 中实现搜索?
- reactjs - 反应中的切换状态工作正常,但我的功能检查不正确
- oracle - 从动态 SQL 访问记录类型的表
- docker - GKE集群创建时如何为节点使用自定义Ubuntu镜像?
- javascript - ExpressJS RESTapi 动态设置路由
- ruby - 如何将文件夹引用添加到 PBXGroup?
- bash - 尝试 grep 时出现错误“期望:生成 id exp4 未打开”