成功した応答だけでなくエラーもマッピングする方法はありますか?
サブスクライブ機能で変更されたエラーを取得したい
request.subscribe(
response => {
this.user = response;
},
error => {
this.error = error;
}
);
私はすでにこれを試しました
let request = this.http.put(url, JSON.stringify(user))
.map(
response => response.json(),
error => this.handleError(error) // returns a string
);
しかし、handleError
は実行されません。
前もって感謝します。
エラー応答の結果をマップするには、catch演算子を使用する必要があります。
let request = this.http.put(url, JSON.stringify(user)).map(
response => response.json())
.catch(
error => this.handleError(error)
);
マップ演算子で指定されたコールバックは、正常な応答に対してのみ呼び出されます。
エラーを「マッピング」したい場合は、次のようなものを使用できます。
this.http.get(...)
.map(...)
.catch(res => Observable.throw(res.json())
この場合、マップされたエラーは、subscribeメソッドの2番目のパラメーターで定義されたコールバックに提供されます。