我正面临一个关于在我的申请中退还解析器的问题。
基本上这是我的解析器:
constructor(private authService: AuthService) { }
resolve() {
/*
this.authService.token; // (property) PeAuthService.authorizationHeader: string
this.authService.getUserInfo(); // (method) PeAuthService.getUserInfos(): Observable<any>
*/
return {
token: this.authService.token,
userInfo: this.authService.getUserInfo()
};
}
我不觉得我正在以正确的方式行事,因为我可以访问令牌值但不能访问userInfo。
有没有办法返回一个包含userinfo数据和令牌的observable?那么可能在一个可观察的组合中组合一个observable和一个字符串?
答案 0 :(得分:1)
更多&#34; Rx&#34;方法将获得getUserInfo()
,然后使用this.authService.token
运算符将其与map()
合并:
this.authService.getUserInfo()
.pipe(
map(userInfo => ({
userInfo,
token: this.authService.token,
}))
);
答案 1 :(得分:0)
在不等待值的情况下,返回对象的userInfo
属性包含Observable
。因此,只需使用async
和await
:
async resolve() {
return {
token: this.authService.token,
userInfo: await this.authService.getUserInfo()
};
}