角度处理状态

时间:2019-09-17 14:14:38

标签: angular typescript angular-httpclient

我在7号角有追随者。

public deleteId(pId){
    return this.http.delete<any>(this.deleteUrl(pId), {observe: 'response'})
      .pipe(catchError(this.handleError));
  }

删除方法(在response.status中,我想在这里输入202个代码)

public deleteMethod(): void {
    this.service.deleteId(this.id)
      .subscribe(response => {

       console.log(`Delete response ` , response);

        if(response.status === 200) {
          console.log('Deleted successfully');
        }
       else if(response.status === 202) {
          console.log('something else'); // I am not getting response.status here
        }
    });
  }

我正在正确获取状态码200,但是我正在handleError方法中获取202。我想要202作为回应。我该怎么办?

private handleError(error: HttpErrorResponse) {
  //It sends me to this function.
}

2 个答案:

答案 0 :(得分:0)

最后我得到以下解决方案:

public deleteId(pId){
    return this.http.delete<any>(this.deleteUrl(pId), {observe: 'response', responseType: 'text' as 'json'})
      .pipe(catchError(this.handleError));
 }

添加了, responseType: 'text' as 'json'

答案 1 :(得分:-1)

public deleteMethod(): void {
this.service.deleteId(this.id)
  .subscribe(response => {

   console.log(`Delete response ` , response);

    if(response.status === 200) {
      console.log('Deleted successfully');
    }
  },
  err => {
    console.log(err.status); // ----> Here's your error
    if(err.status === 202) {
      // do your stuff
    }
  }
);

}