Javascript angular 5网页刷新后为空

Javascript angular 5网页刷新后为空,javascript,angular,observable,Javascript,Angular,Observable,我有以下代码,网页刷新后变为空白,根据URL和导航栏,看起来没有选择活动路线 导出类身份验证服务{ ... 构造函数(私有用户服务:用户服务, 专用路由器:路由器, 私人jwtHelper:JwtHelperService){ const token=localStorage.getItem('token'); 如果(令牌){ const user=jwtHelper.decodeToken(令牌); userService.getUser(user.subscribe)( data=>{th

我有以下代码,网页刷新后变为空白,根据URL和导航栏,看起来没有选择活动路线

导出类身份验证服务{
...
构造函数(私有用户服务:用户服务,
专用路由器:路由器,
私人jwtHelper:JwtHelperService){
const token=localStorage.getItem('token');
如果(令牌){
const user=jwtHelper.decodeToken(令牌);
userService.getUser(user.subscribe)(
data=>{this.setCurrentUser(数据),console.log(数据)},
error=>console.log(错误)
);
}

}
您是否在浏览器控制台中看到任何错误?是否
userService.getUser(…)
返回一个
Promise
或一个
可观察的
?如果它是
Promise
,您的代码应该是错误的,因为
Promise
没有
订阅(…)
方法。
getUser
返回一个
可观察的
,没有错误。
数据
按预期返回。好的。您应该更新您的问题,使用术语“可观察”而不是“承诺”。您的问题中确实没有提供足够的详细信息来提供指导。您能否提供有关此服务的更多详细信息类中是否使用了更多相关代码?是的,刚刚更新了promise->observable。这是最相关的代码段,因为我已经指出了订阅服务的代码段的问题。如果我注释掉这四行代码,它将按预期工作。我确信这不是服务的问题,因为数据返回时预期。
CanActivate
方法可以返回非同步响应(即
Observable
),而不是同步响应(即
boolean
)。您可以使用该主题的Observable将其转换为此类Observable。