Angular / Ionic - 处理JSON“错误”属性

时间:2017-11-15 20:05:13

标签: json angular typescript ionic-framework ionic3

我正在使用TypeScript,Angular 5.0。我的后端响应在此界面中进行了总结:

r"({})\\({})([0-9]+)".format(newspaper, year2)
# or
r"(%s)\\(%d)([0-9]+)" % (newspaper, year2)

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

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存在,我会通知用户代码/消息错误。

1 个答案:

答案 0 :(得分:0)

如果您需要以更通用的方式执行此操作,则可以使用IonicErrorHandler

  

IonicErrorHandler拦截默认的Console错误处理   并在使用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 {}