如何在不冻结的情况下处理传单地图上来自http请求的中型结果

时间:2019-06-18 13:51:36

标签: angular http

我正在使用Angular创建一个仪表板。我正在致电Server PostGIS,其中包含空间数据以可视化到我的传单地图中。 当我加载页面时,一切正常。

步骤是:

  • 定义向服务器发出请求的服务;
getDoors(): Observable<any> {
    return this.http
      .get(this._endpoint+'/api/doors')
      .pipe(
        tap(_ => console.log('fetched doors')),
        catchError(this.handleError('getDoors')),
        map(this.extractData)
      );
  }
  • 在我调用的组件中:

this.serverRequest.getDoors().subscribe(res => this.doors = res);

  • 为了显示模板中的结果,我使用[1]
<div *ngIf="doors">        
      <app-map [data]="doors"></app-map>        
</div>

..other template component ..

考虑到我们谈论的是http调用,我不会退订[2]。

按预期,一切正常。但是考虑大量查询结果(约5000个结果),然后再在地图上显示这些结果会花费几秒钟,并且页面和其他组件也会冻结。

我会得到什么? 我希望创建地图和其他组件,并在可用时添加数据。

参考

[1] https://scotch.io/tutorials/3-ways-to-pass-async-data-to-angular-2-child-components

[2] Is it necessary to unsubscribe from observables created by Http methods?

0 个答案:

没有答案