我想计算每个请求的响应时间。目前,我正在向一个服务发送50个请求,并且在所有请求发送后都得到响应。所以我无法计算每个响应所花费的时间,因为在第一次调用后有49个请求。我使用的是http模块而不是http客户端模块。我觉得Chrome开发人员工具给出了正确的响应时间,但是我该如何在角度4中捕获它呢?
答案 0 :(得分:1)
这是一个简单的拦截器,它从角度角度显示每个请求的时间。您实际上可以对其进行修改,以将时间与响应一起包括在内...我不确定您如何使用时间。
import { HttpInterceptor, HttpRequest, HttpHandler } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { defer } from 'rxjs';
import { finalize } from 'rxjs/operators';
@Injectable()
export class PerformanceInterceptor implements HttpInterceptor {
intercept(req: HttpRequest<any>, next: HttpHandler) {
return defer(() => {
const key = req.urlWithParams;
console.time(key);
return next.handle(req).pipe(finalize(() => {
console.timeEnd(key);
}));
});
}
}