【发布时间】:2020-10-31 14:33:13
【问题描述】:
我正在尝试编写一个看似简单的方法来获取我的 Angular 应用程序的用户个人资料详细信息,并在使用解析器导航到个人资料页面之前加载该数据。 .即使没有错误,解析器也没有完成这是我的解析器类代码:
export class ProfileResolverService implements Resolve<Observable<any>> {
constructor(private fs: FirestoreService, private auth:AuthService) { }
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot){
return this.auth.user.pipe(take(1),
mergeMap(userdata => {
return this.fs.getUserProfile(userdata.uid) //get user profile returns Observable<unknown[]>
})
)
}
}
在我的路由模块中:
path: 'profile',
children: [
{
path: '',
resolve: {
userdata: ProfileResolverService
},
loadChildren: () => import('../profile/profile.module').then( m => m.ProfilePageModule)
}
谁能帮忙。坚持了2天
【问题讨论】:
-
你试过用 switchMap 代替 mergeMap 吗?
-
你的 AuthService 是什么?是 Firebase 身份验证服务还是您自己的?如果是这样,你能发布 this.auth.user 的样子吗?
标签: angular typescript angularfire rxjs-observables mergemap