我的组件中有以下代码:
constructor(private authService: AuthService, private router: Router) {
// Coming back from Auth0 social redirect
this.authService.parseHash((error, result) => {
if (result) {
window.location.hash = '';
this.callService(result.idTokenPayload.email, true);
} else {
this.router.navigateByUrl('/');
}
} else if (error) {
logError(error);
this.router.navigateByUrl('/alert');
}
});
}
private callService(email: string, goHome = false) {
this.authService.createUser().subscribe(
res => {
this.validatedEmail = email;
if (goHome) {
this.router.navigateByUrl('/');
}
},
err => {
logError(err);
this.router.navigateByUrl('/alert');
}
);
}

即使上面的result
确实返回了一个值,窗口哈希也永远不会被清除,路由器也永远不会导航回家。这是为什么?我可以不在回调函数中订阅一个可观察的(它是一个简单的帖子请求)吗?