我一直在学习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;
}
}
);