在回调函数中订阅Observable

时间:2017-05-31 16:15:36

标签: angular callback rxjs observable auth0

我的组件中有以下代码:



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

0 个答案:

没有答案