Запуск AngularJS $ http ResponseTransformer только один раз - PullRequest
0 голосов
/ 21 апреля 2020

У меня следующий вызов $ http в AngularJS:

    $http({
        method: "GET",
        url: "/svc/listAll",
        contentType: "application/json",
        cache: true,
        transformResponse: appendTransform($http.defaults.transformResponse, responseTransformer)
    });

        function appendTransform(defaults, transform) {
            defaults = angular.isArray(defaults) ? defaults : [defaults];

            return defaults.concat(transform);
        }

        function responseTransformer(response) {
            // do something with response
        }

Я установил результат в кеш, потому что данные не меняются и могут быть большим набором данных (например, 30K строк, и да, такой большой набор результатов необходим). Вызов находится внутри директивы angularjs, которую можно использовать несколько раз на одном представлении / странице.

В результате получается, что кэш работает правильно, и только один вызов выполняется бэкэнд сервис. Последующие вызовы обращаются к кешу, как и планировалось. К сожалению, ответ трансформируется каждый раз, когда я бы предпочел изменить сам ответ один раз. Опять же, 30 тыс. Записей для обработки.

Есть ли способ изменить объект ответа один раз, чтобы к моменту, когда объект был возвращен последующими вызовами, ответ уже был преобразован?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...