等待打字稿/ Angular .subscribe

时间:2019-07-01 14:40:54

标签: javascript angular typescript ionic-framework rxjs

我有一个登录功能,我看到我遇到的大多数问题都围绕订阅和等待,但是我认为我已经将必要的代码放入了订阅中。在订阅返回之前,我的菜单/仪表板页面似乎被调用(ngOninit)。

代码如下:

    this.authService.login(this.user).then( (rval) => {
    console.log('Logged in so getting up to date user data');
    this.userService.getUserServer().subscribe (res => {
      this.user = res;
      this.userService.saveUserStore(this.user);
      console.log('Navigating to Dashboard from Login Page');
      console.log(this.user);
      this.router.navigate(['menu' , 'dashboard']); <--Gets to the nav before the subscribe returns?
    },
    error => {

    });

  },
  error => {
    console.log('At error =');
    console.log(error);
    return this.helper.showAlert(error);
  });

我也尝试了使用async await的一些变体,因为之前我有一个相似但不同的问题,但是没有使用subscribe。我发现它一直在访问尚未准备就绪的导航代码,因为那时数据还没有返回。

我想念什么? 干杯

编辑 好的。我想我在调用ngOninit时可能会误解了-我以为在第一次导航到时会调用onInit。我不认为是这种情况。 (不确定?)...我仍然需要弄清楚如何在页面中提供用户信息,因此欢迎任何提示。

0 个答案:

没有答案