现在我正在尝试Angular2 Http进程。
我知道如下功能:
sendGet(url) {
return this._http.get(url)
.map(res => res.json());
}
test(url) {
this.sendGet(url)
.subscribe(
data => {
processing data...
},
error => {
processing error...
},
() => {
other...
}
);
}
但我使用了许多test()函数而没有" error => ..."如下
sendGet(url) {
return this._http.get(url)
.map(res => res.json());
}
test(url) {
this.sendGet(url)
.subscribe(
data => {
processing data...
}
);
}
现在我必须处理所有http get进程的错误。
我认为添加' error => ...'进入每个test()函数都不是好方法。
我希望有一个很好的方法来处理所有的http'错误'只需在sendGet()函数中进行一次修正,但我不知道。
请告诉我该怎么办?
答案 0 :(得分:1)
试试这个:
sendGet(url) {
return this._http.get(url)
.map(res => res.json())
.catch( //error handling );
}
有了这个,如果有错误,它将自动停止执行,而不是去测试方法
答案 1 :(得分:0)
您可以为angular2 http服务编写包装器服务。包装器服务可以使用公共代码处理所有http请求的错误。在向服务器发出任何http请求之前,此包装器服务还可用于添加常见请求标头(如身份验证标头)。 您的完整应用程序应使用包装器服务与服务器通信。
另一种选择是使用http拦截器来处理错误响应。