如何在Angular2中捕获429?

时间:2017-04-04 11:14:26

标签: angular rxjs angular-cli

我正在尝试处理429,但不知怎的,我无法抓住它。基本上遵循Angular示例:

getHeroes(): Observable<Hero[]> {
  return this.http.get(this.heroesUrl)
                  .map(this.extractData)
                  .catch(this.handleError);
}

private handleError (error: Response | any) {
  // In a real world app, you might use a remote logging infrastructure
  let errMsg: string;
  if (error instanceof Response) {
    const body = error.json() || '';
    const err = body.error || JSON.stringify(body);
    errMsg = `${error.status} - ${error.statusText || ''} ${err}`;
  } else {
    errMsg = error.message ? error.message : error.toString();
  }
  console.error(errMsg);
  return Observable.throw(errMsg);
}

我最终的错误状态为0:

Response {_body: ProgressEvent, status: 0, ok: false, statusText: "", headers: Headers…}

我想要达到的目标基本上是我可以抓住它并在一段时间后重试它。我遇到了retryWhen,但我也遇到了像400&amp; 500我不想重试,只是抓住并报告。

0 个答案:

没有答案