应用程序需要首先获取jwt令牌,然后使用令牌,收集门户信息。此代码是用解析器编写的。
此代码出现错误异常:
类型'订阅'不能分配给'Observable'
类型
删除Observable<any>
后,解析数据在组件中不可用,并在解析完成之前启动组件
@Injectable()
export class PortalLoadingResolverService implements Resolve<any> {
constructor(
private authService:AuthService,
private emiDataService:EmiDataService,
) { }
resolve():Observable<any> {
return this.authService.getJwtToken()
.map(res => res.json())
.subscribe(JwtToken => {
debugger;
localStorage.setItem('id_token',JwtToken.token);
return this.emiDataService.getBasicLoadingDatas();
});
}
}
答案 0 :(得分:1)
你的方法不会在这里返回Observable
,这就是Typescript正在大喊大叫的东西。因为一旦您在Observable
上应用了订阅方法,它就会返回Subscription
的可观察对象。您可以通过使用Observable
运算符链接Observable来轻松返回switchMap
。
resolve():Observable<any> {
return this.authService.getJwtToken()
.map(res => res.json())
.switchMap(JwtToken => {
localStorage.setItem('id_token',JwtToken.token);
return this.emiDataService.getBasicLoadingDatas();
});
}