[英]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.