如何处理HTTPServer Angular错误?

时间:2017-10-19 20:36:58

标签: angular

我已经在Angular中覆盖了Http:

return super.request(request, options).map((res: Response) => {

      if (res.json().result.hasOwnProperty('errors')) {
        new ErrorWatcher().reportError(res.json().result.errors);
      }

       return res;

     }).catch(this.catchAuthError(this));

catchAuthError是:

private catchAuthError (self: HttpService) {
    return (res: Response) => {

      if (res.status < 400 ||  res.status === 500) {
        console.log('N');
      }

      return Observable.throw(res);
    };
  }

当出现错误时,它会返回Observable:return Observable.throw(res);

因此我的客户端功能下降了:

this.service.get()
      .subscribe(data => {}, resultError => {
        console.log(resultError);
      });

因为期望获得data

我只需要在我的HttpService中处理catch。我不想这样做:

this.service.get()
          .subscribe(data => {}, resultError => {
            console.log(resultError);
          }).catch(...);

我可以执行以下操作:

通过这里自己的对象? return Observable.throw({"errors" : true});?之后在客户if (!res.hasOwnProperty('errors')) {}

中进行此操作

我在HttpService中试过这个:

res['errors'] = true;

return Observable.from(res);

否则抛出数据!

也是这样:

res.json().push(['errors']);

return Observable.throw(res);

0 个答案:

没有答案