如何在angular2中手动抛出可观察的错误? [英] How to throw observable error manually in angular2?
本文介绍了如何在angular2中手动抛出可观察的错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在开发angular2 app,我正在通过HTTp进行休息,如下所示:
I am working on angular2 app in which I am making a rest call through HTTp as below:
login(email, password) {
let headers = new Headers();
headers.append('Content-Type', 'application/x-www-form-urlencoded');
let options = new RequestOptions({ headers: headers });
let body = `identity=${email}&password=${password}`;
return this.http.post(`${this._configService.getBaseUrl()}/login`, body, options)
.map((res: any) => {
let response: any = JSON.parse(res._body);
if (response.success == 0) {
Observable.throw(response); // not working
} else if (response.success == 1) {
console.log('success');
localStorage.setItem('auth_token', 'authenticated');
this.loggedIn = true;
return response;
}
});
}
基本上我希望我的组件获得响应&订阅中的错误。
basically I want my component to get response & error in my subscribe call.
ie
this._authenticateService.login(this.loginObj['identity'],this.loginObj['password']).subscribe(
(success)=>{
this.credentialsError=null;
this.loginObj={};
this._router.navigate(['dashboard']);
},
(error)=>{
console.log(error);
this.credentialsError=error;
}
);
但是我的api总是返回成功,因为它以这样的方式定义。
but my api always returns success as it id defined that way.
所以我想知道如果 response.success == 0
我怎么能抛出错误消息,以便在我的错误参数内访问它订阅回调。
So I want to know how can I throw error msg if response.success == 0
, so that it will be accessed inside error argument of my subscribe callback.
推荐答案
if (response.success == 0) {
throw Observable.throw(response);
}
这篇关于如何在angular2中手动抛出可观察的错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文