角度超时 HTTP 调用空响应



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

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

从 Angular 调用 api 2 分钟后,我可以看到 Chrome 控制台上出现以下错误。即使 Spring 引导完成了执行,在 Angular 中也没有收到任何响应

区域.js:2935 获取 http://localhost:4200/api/oonReimbursement?market=Jumbo&start=2018-1-1&end=2018-1-3 网::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 可观察量相关的内容,有人可以帮助我吗?

您可以使用 rxjs 中的重试运算符重做对终端节点的请求。另外,这个问题也许可以为您提供更多帮助。

最新更新