Angular 在得到正确响应或错误的情况下,如何在订阅响应中实现操作?
我正在尝试向登录函数添加加载微调器。我已经创建了一个名为“loading”的变量,我希望当我从服务器(而不是之前)获得响应时,这个变量会变为false(在html中为disapear)。我使用下一个函数获得结果,将两个响应(正确响应和错误响应)中的变量都更改为false,但我想知道是否有更干净的方法来实现这一点 谢谢大家!Angular 在得到正确响应或错误的情况下,如何在订阅响应中实现操作?,angular,subscribe,Angular,Subscribe,我正在尝试向登录函数添加加载微调器。我已经创建了一个名为“loading”的变量,我希望当我从服务器(而不是之前)获得响应时,这个变量会变为false(在html中为disapear)。我使用下一个函数获得结果,将两个响应(正确响应和错误响应)中的变量都更改为false,但我想知道是否有更干净的方法来实现这一点 谢谢大家! login() { this.loading = true; let model: UserLogin = Object.assign({}, this.fo
login() {
this.loading = true;
let model: UserLogin = Object.assign({}, this.formGroup.value);
this.accountService.login(model)
.subscribe(
token => {
this.setToken(token);
this.loading = false;
},
error => {
alert(this.errorService.manageError(error)[""]);
this.loading = false;
}
);
}
您可以使用RxJS操作符。它将在完成和观察到的错误时触发
从“rxjs/operators”导入{finalize};
登录(){
这是。加载=真;
let model:UserLogin=Object.assign({},this.formGroup.value);
这个.accountService.login(model.pipe(
完成(()=>this.loading=false)
).订阅(
令牌=>{
this.setToken(token);
},
错误=>{
警报(this.errorService.manageError(error)[“”]);
}
);
}
这太棒了!非常感谢你!!