Angular4:记录服务器响应所花费的时间

时间:2018-01-24 18:03:12

标签: angular http rxjs

我有一项服务来获取项目详情,如

public getProjectDetail(id: number): Observable<IProject> {
    if (id === undefined) {
      return Observable.of(this.initializeProject());
    }
    return this.http.get(this.url + 'api/v1/cmang_api/projects/' + id, { headers: this.headers })
      .map(this.extractResponse)
      .catch(this.handleError);
  }

我想控制服务器处理请求所花费的时间。有没有办法记录时间?

1 个答案:

答案 0 :(得分:0)

在非常基本的调试级别,您可以将do运算符与console.time()结合使用;

public getProjectDetail(id: number): Observable<IProject> {
  if (id === undefined) {
    return Observable.of(this.initializeProject());
  }

  // start timer with label 'getProjectDetail()'
  console.time(`getProjectDetail(${id})`);    

  return this.http.get(this.url + 'api/v1/cmang_api/projects/' + id, { headers: this.headers })
    // end time with label 'getProjectDetail()'
    .do(res => console.timeEnd(`getProjectDetail(${id})`))
    .map(this.extractResponse)        
    .catch(this.handleError);
}

请记住,这将记录开发和生产环境。

输出如下:

getProjectDetail(someIdNumberDisplaysHere): 5171.75ms

希望这有帮助!