现在我尝试使用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)
}
答案 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();
}
}