首页 > 解决方案 > Observable 没有使用 Angular 12 抛出任何错误/错误状态

问题描述

我使用的是很久以前用 Angular 4 制作的教程,从那时起发生了很多变化,现在我正在使用 Angular12。

我通过使用来自 rxjs 的 Observable 和使用管道的 catchError 完成了根据 Angular 12 的更改,并且我使用https://jsonplaceholder.typicode.com/posts作为假的 REST API。我在 google 上搜索得到 observable 的响应状态。但我无法获得响应状态。这是代码。我得到 200 而不是 404/400,我也看不到 200 响应。有人可以让我知道如何获得响应状态。

// component code
deletePost(post) {
    this.service.deletePosts(345)
      .subscribe(
        response => {
          console.log(response);
          let index = this.posts.indexOf(345)
          console.log(index)
          this.posts.splice(index, 1);
      }, 
        (error: AppError) => {
          if(error instanceof NotFoundError)
          alert('This post has already been deleted');
          else {
            alert('An Unexpected error occured');
            console.log(error);
          }
      })
  }
// below is the service code. 
deletePosts(id) {
    return this.http.delete(this.url + '/' + id)
      .pipe(
        catchError((error: Response)=> {
          if(error.status === 404) {
            return throwError(new NotFoundError())
          }
          return throwError(new AppError(error));     
        })
      )
  }

标签: observableangular12

解决方案


推荐阅读