在一个解析器中,我需要获取用户数据。首先,我需要检查其配置文件是否为“销售”,如果是,则使用返回的用户名我必须从其他 http get 方法获取 salesPerson 数据,否则返回一些我可以检查是否为空的数据。
我有两种不同的方法:
userInfo(): Observable<User> {
return this.httpClient.get('/endpoint/api/auth/me')
.pipe(
map(result => result['user'])
)
} // in this observable there is the username and profile inside.
getSalesPerson(username) {
return this.httpClient.get<ISalesRep>(`${this.BASE_URL}/getVendedor?user=${usuario}`);
} // is this observer there is salesPerson data with SalesPersonId
两者的观察者不同。第一个问题:关于解析器的解析方法,应该使用什么类型?第一个使用 IUSer 接口,第二个使用 ISalesRep 接口。
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):
Observable<????> | Promise<????> | ??? { ... }
第二个问题:如何才能做出回报?
return this.loginService.userInfo()
.pipe (
???someMethod???((user) => {
if ( user.profile == 'Sales' ) {
return this.otherService.getSalesPerson(user.username)
.subscribe((data) => { take the SalesPerson Observable }
} else {
return empty observable or some I can check if is empty;
}
})
)
.subscribe();
我很高兴有人可以提供帮助。提前致谢