我一直在学习Angular 6,但对订阅方法和错误处理有疑问。
因此,可观察对象上的订阅功能的基本用法如下所示:
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函数将其识别为一个错误。例如,我的应用程序允许用户从特定的有限集合(本例中为所有神奇宝贝的集合)创建物品列表,因此,如果他/她尝试添加不存在的神奇宝贝,我希望我的后端返回错误。目前,我正在返回这样的JSON对象:{ "error" => "you did something wrong" }
,并在我的Subscribe函数的第一个参数中对其进行处理。我想很好,但是如果有适当的错误处理措施,我认为最好利用它。
干杯!
答案 0 :(得分:1)
尝试这样的事情:
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;
}
}
);