我一直在学习Angular6,我有一个关于订阅方法和错误处理的问题。
因此,对可观察对象使用subscribe函数的基本方法如下:

this.myService.myFunction(this.myArg).subscribe(
  // Getting the data from the service
  data => {
    this.doSomethingWith(data);
  },
  err => console.log('Received an error: ', err),
  () => console.log('All done!')
);

因此,本例中的错误可能是500个错误或其他什么,但我想知道是否有方法从后端发送数据(我正在使用php),以便subscribe函数将其识别为错误。例如,我的应用程序允许用户从特定的有限集(在我的情况下所有Pokimon的集合)创建一个项目列表,所以如果他/她试图添加不存在的Pokimon,我希望我的后端返回一个错误。目前,我正在返回一个json对象,如下所示:{ "error" => "you did something wrong" }并在subscribe函数的第一个参数中处理它。我想没问题,但如果有适当的错误处理方法,我想最好利用它。
干杯!

最佳答案

试试这样的:

import {
    HttpEvent,
    HttpHeaders,
    HttpInterceptor,
    HttpResponse,
    HttpErrorResponse,
    HttpHandler,
    HttpRequest
} from '@angular/common/http';

this.myService.myFunction(this.myArg).subscribe(
  // Getting the data from the service
  data => {
    this.doSomethingWith(data);
  },
 (err: any) => {

        if (err instanceof HttpErrorResponse) {
              switch (err.status) {
                   case 400:
                     console.log("400 Error")
                     break;
                   case 401:
                     console.log("401 Error")
                     break;
                   case 500:
                     console.log("500 Error")
                     break;
          }
       }
);

10-07 17:35