映射http错误响应

Map http error response

有没有办法既映射成功响应又映射错误?

我想在订阅函数中获取修改错误

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)
        );

地图运算符中指定的回调仅在成功响应时调用。

如果你想 "map" 错误,你可以使用类似的东西:

this.http.get(...)
       .map(...)
       .catch(res => Observable.throw(res.json())

在这种情况下,映射的错误将提供给订阅方法的第二个参数中定义的回调。