Angular 订阅处理错误
Angular subscribe with processing error
现在我正在尝试 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...
}
);
}
但是我已经使用了很多没有 "error => ..." 的 test() 函数,如下所示
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 'error' 的好方法,只需在 sendGet() 函数中进行一次更正,但我不知道。
请让我知道我该怎么做?
试试这个:
sendGet(url) {
return this._http.get(url)
.map(res => res.json())
.catch( //error handling );
}
有了这个,如果有错误,它会自己停止执行,而不是去测试方法
您可以为angular2 http 服务编写包装器服务。包装器服务可以使用通用代码处理所有 http 请求的错误。此包装服务还可用于在向服务器发出任何 http 请求之前添加常见请求 header,例如身份验证 header。
您的完整应用程序应使用包装器服务与服务器通信。
另一种选择是使用 http 拦截器来处理错误响应。
现在我正在尝试 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...
}
);
}
但是我已经使用了很多没有 "error => ..." 的 test() 函数,如下所示
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 'error' 的好方法,只需在 sendGet() 函数中进行一次更正,但我不知道。
请让我知道我该怎么做?
试试这个:
sendGet(url) {
return this._http.get(url)
.map(res => res.json())
.catch( //error handling );
}
有了这个,如果有错误,它会自己停止执行,而不是去测试方法
您可以为angular2 http 服务编写包装器服务。包装器服务可以使用通用代码处理所有 http 请求的错误。此包装服务还可用于在向服务器发出任何 http 请求之前添加常见请求 header,例如身份验证 header。 您的完整应用程序应使用包装器服务与服务器通信。
另一种选择是使用 http 拦截器来处理错误响应。