有没有办法不仅映射成功的响应而且还映射错误?
我想在订阅功能中获得修改后的错误
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
永远不会被执行。
提前致谢。
答案 0 :(得分:15)
要映射错误响应的结果,您需要使用catch运算符:
let request = this.http.put(url, JSON.stringify(user)).map(
response => response.json())
.catch(
error => this.handleError(error)
);
仅在成功响应时调用map运算符中指定的回调。
如果你想" map"错误,你可以使用类似的东西:
this.http.get(...)
.map(...)
.catch(res => Observable.throw(res.json())
在这种情况下,映射的错误将提供给subscribe方法的第二个参数中定义的回调。