Angular 2 - Http客户端在状态代码为404时拒绝承诺

时间:2017-08-07 16:24:46

标签: javascript angular

我最近开始使用Angular 2并且很快发现当使用HTTP客户端时,来自服务器的返回代码404最终会拒绝承诺。

这是我服务中的代码:

  export class CalculatorService {

  private _serviceUrl = 'http://localhost:3000';
  private headers = new Headers({'Content-Type': 'application/json'});

  constructor(private http: Http) { }

  getCode(request: CalculatorRequest) {
    return this.http.post(this._serviceUrl, JSON.stringify(request), {headers: this.headers})
        .toPromise()
        .then(response => response.json() as CalculatorResponse)
        .catch(this.handleError);
  }

  private handleError(error): Promise<any> {
    const errMsg = (error.message) ? error.message :
      error.status ? `${error.status} - ${error.statusText}` : 'Server Error : Service Unavailable';

    if (errMsg != null) {
      return Promise.reject(errMsg);
    }
  }
}

不幸的是,我没有解析promise,而是调用了handleError方法,因为404会导致拒绝。

是否有一种直接的方法来解决返回代码为404的请求?

谢谢!

0 个答案:

没有答案