首页 > 解决方案 > 当数据量很大时,angular 2 http get 请求被调用两次

问题描述

我正在尝试使用 Angular http get 请求获取一个月的历史数据。我使用 angular 5,服务器在节点 js 中,db 是 mongodb。第一次单击按钮时,它会点击服务器,并且控制台会打印在服务器上。2 分钟后再次服务器控制台,因为 ui 命中服务器,但 ui 没有调用服务器。1分钟后,服务器显示发送成功响应,但ui控制台显示错误-“连接被拒绝”。我尝试使用可观察的共享来解决它。但它不起作用这是我的服务。

getReports(params): Observable<number>{
        let headers = new Headers({ 'Content-Type': 'application/json' });
        let options = new RequestOptions({ headers: headers });
        return this.http.get(url, options)
       .map((res: Response) => res.json())
       .catch(this.handleError)}

标签: node.jsangularmongodbrestapi

解决方案


尝试如下

return this.http.get(url, options)
    .timeout(3000, new Error('timeout exceeded'))
    .map((res: Response) => res.json())
    .subscribe(
        data => this.data = data,
        error => console.debug('ERROR', error),
        () => console.log('END')
      );
    .catch(this.handleError)}

使用超时是可能的。3000 表示 3 秒或 3000 毫秒


推荐阅读