AngularJS: Объявление уникальной переменной внутри перехватчика - PullRequest
0 голосов
/ 25 апреля 2019

Мне нужна переменная, уникальная для каждого запроса внутри моего 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, если это имеет значение.

1 Ответ

1 голос
/ 26 апреля 2019

Вы можете сохранить переменную в config и вернуть ее обратно в response.config.

...