gpt4 book ai didi

angular - 处理http删除

转载 作者:行者123 更新时间:2023-12-03 07:58:31 24 4
gpt4 key购买 nike

我有一个REST服务,可以通过id删除资源。如果成功,我会得到没有响应对象的200。如果发生错误,我会得到带有包含错误消息的响应对象的404

服务代码如下:

deleteResource(id: number, cascade: boolean) {
let url = this.url + '/' + id;
if (cascade) url = url + '?cascade=true';

return this.http.delete(url)
.map(res => res.json())
.do(data => console.log('server data:', data)) // debug
.catch(this.handleError);
}

这也是handleError函数:
private handleError(error: Response | any) {
let body: ErrorMessage;
// In a real world app, we might use a remote logging infrastructure
// We'd also dig deeper into the error to get a better message
if (error instanceof Response) {
try {
body = error.json();
console.log(body);
} catch (e) {
// No content response..
body = null;
}
}
let errMsg = (error.message) ? error.message : error.status ? `${error.status} - ${error.statusText}` : 'Server error';
//console.error(errMsg); // log to console instead
return Observable.throw(body || errMsg);
}

我在组件中使用以下代码。
this.resourceService.deleteResource(resource.resource_id, cascade).subscribe(
res=>{
console.log('This is never executed'+ res);
},
err=>{
console.log('This is always executed' + err);
}
);

每当我执行上述代码时,无论响应状态如何,总是执行 err部分。有人可以解释为什么吗?处理此问题的正确方法是什么?

提前致谢。

最佳答案

从那以后,我在某些情况下得到了回应。我必须添加检查响应(是否已定义),然后对其进行处理。

关于angular - 处理http删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43741878/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com