以下是一个使用HttpClient进行Delete请求并处理错误的示例代码:
import { HttpClient, HttpErrorResponse } from '@angular/common/http'; import { catchError } from 'rxjs/operators'; import { throwError } from 'rxjs';
@Injectable({ providedIn: 'root' }) export class UserService { private deleteUserUrl = 'api/user/';
constructor(private http: HttpClient) { }
deleteUser(id: number) {
const url = ${this.deleteUserUrl}${id}
;
return this.http.delete(url)
.pipe(catchError(this.handleError));
}
private handleError(error: HttpErrorResponse) {
if (error.error instanceof ErrorEvent) {
// 客户端错误
console.error('An error occurred:', error.error.message);
} else {
// 服务器返回错误响应码
console.error(
Backend returned code ${error.status},
+
body was: ${error.error}
);
}
// 返回一个带有用户友好提示的可观察对象
return throwError(
'Something bad happened; please try again later.');
};
}
在组件中使用userService.deleteUser()方法发出Delete请求,例如:
onDelete(id: number) { this.userService.deleteUser(id) .subscribe( () => { // 用户删除成功,刷新用户列表 }, error => { // 显示用户友好的错误提示 } ); }