Javascript HTTP使用拦截器测量每个请求的时间

Javascript HTTP使用拦截器测量每个请求的时间,javascript,angularjs,Javascript,Angularjs,我试图在我的应用程序中测量http请求的时间。因为我认为这应该在全球范围内完成,所以我想使用拦截器 我创建了一个可以记录每个请求的开始时间和结束时间的日志: app.factory('httpTimeInterceptor', [function() { var start; return { request: function(config) { start = new Date(); console.log("START",start); return con

我试图在我的应用程序中测量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
变量将被新值覆盖

问题是我的拦截器是工厂,所以它是一个单例(请纠正我,如果我错了)

我是否可以修改代码以轻松获取每个请求所花费的实际时间?
我正在考虑创建一个数组,该数组将为每个请求保存密钥,当它结束时,我将能够从该数组(字典)中获取开始时间,但我不知道如何在
请求
响应
函数中识别相同的请求


也许有更简单更简单的方法来解决我的问题?

您可以将开始时间存储在传递给
请求
函数的
配置
对象上。此对象在
响应
拦截器中作为
response.config
提供。请确保选择一个唯一的尚未命名的属性名称。

感谢您的快速响应。我会尝试使用你的建议:)效果很好。谢谢