首页 > 解决方案 > 角度多可观察守卫不按顺序运行

问题描述

嗨,我的路由中有两个警卫。

我的第一个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

谢谢你的回答。

标签: angularroutesobservableauth-guard

解决方案


推荐阅读