Angular / Ionic - 处理 JSON“错误”属性
Posted
技术标签:
【中文标题】Angular / Ionic - 处理 JSON“错误”属性【英文标题】:Angular / Ionic - Handle JSON "error" property 【发布时间】:2018-04-29 04:53:24 【问题描述】:我正在使用 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
存在,我会通过代码/消息错误通知用户。
【问题讨论】:
你现在有什么问题? 我试图找出代码中执行JSON解析的位置,并检查数据或错误字段是否存在,并最终在UI中通知处理后的数据或错误 为什么不能在(err) => console.log(err);
buttonClicked()
事件中这样做?
【参考方案1】:
如果您需要以更通用的方式执行此操作,您可以使用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
【讨论】:
以上是关于Angular / Ionic - 处理 JSON“错误”属性的主要内容,如果未能解决你的问题,请参考以下文章
Angular 6 - Ionic - 使用拦截器中断 http 请求并返回 json
(IONIC - Angular)我如何在 html 卡片中仅显示符合特定条件的 JSON 中的某些对象?
Json 输入 Ionic 3 和 Angular 6 意外结束
ionic 3 angular 5 restapi 请求不起作用
Ionic Angular Mobile App 在从项目中的文件中获取和显示 json-array 数据时显示错误---