Мне нужно иметь переменную, уникальную для каждого запроса внутри моего http-перехватчика. Поэтому, когда приходит запрос, я хочу установить для этой переменной какое-то значение и прочитать это значение в ответе. Проблема в том, что перехватчики являются общими, поэтому каждый раз, когда в мою переменную приходит новый запрос, он просто отменяется.
angular.module('app').factory('httpInterceptor', ['$q',
function($q) {
var myInstanceVar = "";
return {
request: function (config) {
myInstanceVar = Math.random();
return config;
},
response: function (response) {
console.log(myInstanceVar);
return response || $q.when(response);
}
}
}
]);
Итак, в этом примере я хотел бы, чтобы myInstanceVar
был уникальным, когда я выводил значение в response
, но вместо этого он просто выводит значение, которое было сгенерировано последним запросом. Итак, если у меня есть 3 запроса, вывод будет 3,3,3
вместо 5,9,3
, поскольку последний запрос установил его на 3
.
Я знаю, что, вероятно, могу просто добавить значение в тело запроса и заставить сервер вернуть его обратно, но я хочу избежать этого, если это возможно.
Я использую AngularJS 1.6.4, если это важно.