角度超时http调用空响应

时间:2018-03-19 18:51:22

标签: angular spring-boot timeout http-get angular2-observables

My Angular frontend选择参数,然后对执行查询的Spring Boot应用程序进行HTTP GET api调用。

现在,我的查询非常复杂,至少需要3分钟才能完成执行,然后将结果返回给Angular。

从Angular拨打api电话2分钟后,我可以看到Chrome控制台上出现以下错误。即使Spring引导完成执行,Angular

也没有收到任何响应

zone.js:2935 GET http://localhost:4200/api/oonReimbursement?market=Jumbo&start=2018-1-1&end=2018-1-3 net :: ERR_EMPTY_RESPONSE

以下是我的获取api通话方法

public getOonReport(searchCriteriaDTO: SearchCriteriaDTO): Observable < OonReimbursementDTO[] > {

  const cpParams = new URLSearchParams();
  cpParams.set('market', searchCriteriaDTO.marketSegment);
  cpParams.set('start', searchCriteriaDTO.effectiveStartDate.toString());
  cpParams.set('end', searchCriteriaDTO.effectiveEndDate.toString());
  const options = new RequestOptions({
    params: cpParams
  });

  console.log("REST API call = /api/oonReimbursement");

  return this.http.get('/api/oonReimbursement', options)
    .pipe(
      map((response: Response) => < OonReimbursementDTO[] > response.json()));

}

下面是我在角度组件中的订阅方法。

this.report1Service.getOonReport(searchCriteriaDTO).subscribe((data: OonReimbursementDTO[]) => this.oonReports = data);

如果查询执行在不到2分钟内完成,我们就会得到完美的响应。

如果由于角度结束时的超时问题或者http.get()api调用中的Rx Observables相关内容,有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您可以使用rxjs中的retry operator将请求重做到您的终端。此外,这个question也许可以帮助你。