路由器canActivate超过1个卫

问题描述:

是否角(V 4.1.1)路由器canActivate采取以上的功能路由器canActivate超过1个卫

{ 
    path: '', 
    component: SomeComponent, 
    canActivate: [guard1, guard2, ...] 
} 

更多的应该是这样的工作?如果不是,他们为什么会在列表中,如果它假设只带一名后卫

因为我有类似的东西,即使guard1返回falseguard2仍然会被执行。

在此先感谢

角4.1.1

+0

他们被一个接一个执行 –

+0

他们是守卫,不应该被用作工作者线程。他们应该是彼此独立的。否则,使用解析器和依赖注入来使它们相互依赖。 – cgTag

这应该工作,但我相信,警卫不平行的顺序执行。所以第二个不会等到第一个返回值。如果你的守卫是同步的,这应该不会影响你,但如果他们是异步的,你会遇到这个“问题”。

如果你需要你的卫兵互相依赖,你可以分开支票的公共部分,你的所有卫兵都可以调用这个逻辑。但我认为在大多数情况下,这不应该是必要的,因为如果其中只有一个失败,路由不会被激活。

+0

那么如果第二个卫兵依赖于第一个卫兵 – phacic

+1

我的理解是,最好的做法是把它们写成独立/单独的检查,它们不应该相互依赖。 –

+1

正式注意。非常感谢 – phacic