[英]HTTP measure time of each request using interceptor
我正在尝试在应用程序中衡量HTTP请求的时间。 因为我认为这应该在全局范围内完成,所以我想使用拦截器。
我创建了一个可以记录每个请求的开始时间和结束时间的记录:
app.factory('httpTimeInterceptor', [function() {
var start;
return {
request: function(config) {
start = new Date();
console.log("START",start);
return config;
},
response: function(response) {
console.log("START",start);
var date = new Date();
console.log("END",date);
return response;
}
};
}])
这会将三个值记录到控制台:我的请求的开始时间,然后再次是开始时间和结束时间(请求结束时)。
当我执行多个请求时(第二个开始于第一个结束之前),我的问题就开始了。 在这种情况下,我的start
变量将被新值覆盖。
问题是我的拦截器是出厂的,所以是单例的(如果我错了,请纠正我)。
我可以修改代码以轻松获取每个请求的实际时间吗?
我正在考虑创建一个将为每个请求保留键的数组,当它结束时,我将能够从该数组(字典)中获取开始时间,但是我不知道如何在request
和response
函数中标识相同的请求。
也许对我正在尝试的事情有更简单的解决方案?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.