Angular 角度-保护不会等待父解析程序完成
我的路由器是这样的Angular 角度-保护不会等待父解析程序完成,angular,observable,angular-router,angular-router-guards,angular-resolver,Angular,Observable,Angular Router,Angular Router Guards,Angular Resolver,我的路由器是这样的 const routes:routes=[{ 路径:“”, canActivate:[AuthGuard], 决心:{ 用户:UserResolver, }, 儿童:[{ 路径:“家”, 可激活:[家庭守卫], 组件:HomeComponent, }, { …其他路线, }], }]; 为了授权访问,HomeGuard需要UserResolver检索的数据中的数据。问题在于HomeGuard没有等待UserResolver完成 @可注入({ providedIn:'根',
const routes:routes=[{
路径:“”,
canActivate:[AuthGuard],
决心:{
用户:UserResolver,
},
儿童:[{
路径:“家”,
可激活:[家庭守卫],
组件:HomeComponent,
}, {
…其他路线,
}],
}];
为了授权访问,HomeGuard
需要UserResolver
检索的数据中的数据。问题在于HomeGuard
没有等待UserResolver
完成
@可注入({
providedIn:'根',
})
导出类UserResolver实现解析{
构造函数(私有api:ApiService){}
解析(路由:ActivatedRouteSnapshot,状态:RouterStateSnashot):可观察{
返回此.api.getUser()管道(
延迟(1000),//模拟api调用持续时间
地图((用户:用户)=>{
console.log(用户);
返回用户;
}),
);
}
}
在其他stackoverflow帖子中,人们声称解析程序在导航之前解析对象,但这是否意味着守护程序等待父解析程序完成
编辑。
使用防护罩作为分解器可以吗?根据角度文档 如果同时指定了保护和冲突解决程序,则在所有保护程序运行并成功之前,不会执行冲突解决程序 请务必检查本手册中解释的示例