Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度-保护不会等待父解析程序完成_Angular_Observable_Angular Router_Angular Router Guards_Angular Resolver - Fatal编程技术网

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帖子中,人们声称解析程序在导航之前解析对象,但这是否意味着守护程序等待父解析程序完成

编辑。
使用防护罩作为分解器可以吗?

根据角度文档

如果同时指定了保护和冲突解决程序,则在所有保护程序运行并成功之前,不会执行冲突解决程序

请务必检查本手册中解释的示例