[英]Angular 2 : Get 404 error in http.get call with Observable return
我有一个小问题,我有这个代码,当它必须返回状态 200 时可以工作(一切正常)
httpCallGet(pathToCall: string, varToSend: string ): Observable<any> {
return this.http.get(this.url + pathToCall + varToSend, {headers : this.headers} )
.map( res => res.json())
.catch(this.handleError);
}
但是当 URL 错误并且出现 404 错误时,我的网站就会因控制台错误而崩溃。
我怎样才能在控制台上正确地捕获这种类型的错误而没有错误,并且我可以在错误时重试?
我尝试 .retry(3) 但此代码不起作用并且 .subscribe 不适用于 Observable 返回(我不太容易使用 Observable ^^)
作为一个想法来解决这个问题?
让您的服务返回一个 observable,该 observable 要么返回结果,要么抛出错误。
httpCallGet(pathToCall: string, varToSend: string ): Observable<any> {
return this.http.get(this.url + pathToCall + varToSend, {headers : this.headers} )
.map( res => res.json())
.catch(error => Observable.throw('error');
};
然后在您的组件中,处理错误。
getHttpData = () => {
this.service.httpCallGet('someurl', '')
.subscribe(
result => this.handleResult(result),
error => this.handleError(error)
)
};
handleResult = (data) => {
// do stuff with data
};
handleError = (error) => {
// do stuff with error
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.