角度/离子 - 处理 JSON "error"属性



我使用的是TypeScript,Angular 5.0。我的后端响应总结如下:

export interface JSONResponse {
error?: {
code: number,
message: string
};
data?: {};
}

我的服务中从服务器获取数据的功能是:

httpGet(url: string, httpParams: HttpParams) {
return new Promise((resolve, reject) => {
this.http.get<LoginResponse>(url, {params: httpParams})
.subscribe(res => {
resolve(res.data);
}, err => {
// handle http get related errors here
console.log(err);
});
});
}

然后是使用此服务来呈现模板的组件:

buttonClicked(event) {
this.myService.httpGet('myAPIurl', someRequestParams)
.then((data) => {
this.myData = data;
}, (err) => {
console.log(err);
});
}

哪里可以处理来自后端的响应的错误检查?

也就是说,如果属性data存在,则响应是成功的,并对我的数据进行适当的处理;如果属性error存在,我会用代码/消息错误通知用户。

如果需要以更通用的方式执行,可以使用IonicErrorHandler

IonicErrorHandler拦截默认控制台错误处理并在使用Ionic的Dev Build时将运行时错误显示为覆盖服务器

import { NgModule, ErrorHandler } from '@angular/core';
import { IonicErrorHandler } from 'ionic-angular';
@NgModule({
providers: [{ provide: ErrorHandler, useClass: IonicErrorHandler }]
})
class AppModule {}

如果你想定制它,你也可以这样做。

class MyErrorHandler implements ErrorHandler {
handleError(err: any): void {
// do something with the error
}
}
@NgModule({
providers: [{ provide: ErrorHandler, useClass: MyErrorHandler }]
})
class AppModule {}

最新更新