如何转换HttpErrorResponse

时间:2019-07-15 17:51:25

标签: angular typescript

我想知道如何替代我自己的类而不是像下面这样的HttpErrorResponse。

onSendFormDataClicked(event){
    this.http.post(url, body).catch((response:MyErrorClass)=>{
        console.log(response.GetErrorMessage());
    });
}

export class MyErrorClass extends HttpErrorResponse{
    public GetErrorMessage(){
        return "My Custom logic for error handling";
    }
}

我尝试了此操作,但获取GetErrorMessage()不是函数。

1 个答案:

答案 0 :(得分:0)

您似乎要尝试将this.http.post捕获处理程序中的响应参数更改为MyErrorClass类型。但是,如果不重写this.http.post方法本身,就无法执行此操作,我怀疑这是您要执行的操作。

相反,您可以在catch块中实现自定义错误处理:

onSendFormDataClicked(event) {
  this.http.post(url, body).catch((response) => {
    const error = new MyErrorClass(response);
    console.log(error.getErrorMessage());
  });
}

export class MyErrorClass {
  constructor(response: HttpErrorResponse) {
    // Your logic here.
  }

  getErrorMessage() {
    return "My Custom logic for error handling";
  }
}