私のTypescriptコードから、私はC#で書かれたWebサービスを呼び出します。私のtypescriptコードはこのように見え、私のサービスがHTTP200を返すときには期待どおりに動作しますが、サーバーが資格情報を拒否してHTTP 400をスローすると、マップ関数内で中断しません。これがそうでstatus, statusText
などのプロパティを定義するResponse
クラスの定義を見てみるとサービスを返すときに.mapは動作しません。HTTP 400
return this.http.post(this.authenticationEndpoint, params)
.map((response:Response) => {
let resp = response;
let token = response.json() && response.json().access_token;
if(token){
this.token = token;
localStorage.setItem('user', JSON.stringify({userName: userName, token:token}));
return true;
}
return false;
})
。 AngularとTypescriptに関する限られた知識があれば、サービスから返されたHttpコードにかかわらず、map
関数内で壊れてしまうと思いますか?このケースをどうすれば処理できますか? My機能は、あなたが観測エラーをcatch
する必要がObservable<boolean>
エラーを処理するために '.catch'メソッドを使用するか、またはあなたの加入者でそれらを扱います。また、コールバック引数の型を指定する必要はありません。 '(response:Response)=> ...'はただ '' response => '' –
でなければなりません。または、間違った言葉を使いましたが、あなたが400回の回答を得たときにそれが壊れていたことを意味しましたか?それとも、コールバック関数の中に決して進まないということですか?あなたが使用しているAPIに適したキャッチまたは同様のコールバックをAluanが言及して使用するときには、後者が必要です。 –
申し訳ありませんが、ブレークで私はそれが最初の行にブレークポイントをヒットしないことを意味するresp = response; –