如何显示加载直到下一个项目或错误到达与observables?

时间:2017-06-14 11:11:51

标签: angular rxjs observable

现在我尝试使用observables。用户可以注销并以其他用户身份登录,因此非常适合流。但是我如何以及在何处实施this.loadingService.showLoading();this.loadingService.hideLoading();

它不能在subscription中,因为它永远不会完成。 this.loginService.login(credentials)还会返回user$ - 流

public user$: Observable<any> = this.loginService.user$;

this.subscription.add(this.user$.subscribe(value => {
    this.user = value;
}, err => {
    console.error('error in user stream', err);
}, () => {
    console.error('impossible')
}));

userLoginHandle(credentials) {
    this.loginService.login(credentials)
}

2 个答案:

答案 0 :(得分:2)

这个怎么样?

this.subscription.add(this.user$.subscribe(value => {
    this.loggingIn = false;
    this.user = value;
}, err => {
    this.loggingIn = false;
    console.error('error in user stream', err);
}, () => {
    console.error('impossible')
}));

userLoginHandle(credentials) {
    this.loggingIn = true;
    this.loginService.login(credentials)
}

答案 1 :(得分:0)

您可以为用户对象实现一个setter

set user(value) { 
  if(value) {
    this.loadingService.hideLoading();
  }
}