以下のように私は私がHTTP経由で、残りのコールを作っていたにangular2アプリに取り組んでいます:基本的に私は私のコンポーネントが私の購読呼び出しに応答&エラーを取得したいangular2で観測可能なエラーを手動でスローする方法は?
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;
}
});
}
。
すなわち
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;
}
);
それidはそのように定義されているように私APIは常に成功を返します。
response.success == 0
の場合はエラーメッセージをスローすることができるので、subscribeコールバックのエラー引数の中でアクセスすることができます。
次第です、私はそれがその後、他の0することができ意味ですか? –
@MrJSingh APIを設計した人は、レスポンスを検証するために0または1として成功を返しました。私の操作は成功しました。成功= 1を返すか、成功= 0を返します。それは可能ですか? –
私のアプリで試してみると、技術的に可能でなければなりません。 –