Задать вопрос
yarkov
@yarkov
Помог ответ? Отметь решением.

Как правильно пользоваться service-worker или angular?

Раньше на проекте использовал cache.manifest. Файл генерировался gulp-ом после сборки и в общем все работало.
Сейчас решил перейти на service-worker, ибо где-то прочитал, что после НГ cache.manifest будет deprecated.
И сейчас вроде тоже все гуд, но есть одно НО!
Весь фронтенд у меня статичный, на angular 1.6. Статика отдается Nginx. На сервере только API на Express.
И вот значит собираю проект, обновляю, service-worker подключается, файлы закешированы и тут мне надо протестировать работу в offline.
Я в DevTools ставлю галочку Application -> Service Workers -> Offline и все работает до первой попытки обратиться к API.
В консоль валится over-дох@я ошибок одна за другой, не переставая:
GET https://domain.ru/api/v1/user/valid net::ERR_INTERNET_DISCONNECTED


Внимание, вопрос! Может это как-то через angular Interceptor перехватить и обработать?
  • Вопрос задан
  • 583 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
uaKorona
@uaKorona
Front-End разработчик
Посмотрите какой код ошибки возвращается и напишите ее обработку в интерсептере

var interceptor = ['$rootScope', '$q', function ($rootScope, $q) {

        function success(response) {
            return response;
        }

        function error(response) {
            var status = response.status; // error code

            if ((status >= 400) && (status < 500)) {
                $rootScope.broadcast("AuthError", status);
                return;
            }

            if ( (status >= 500) && (status < 600) ) {
                $rootScope.broadcast("ServerError", status);
                return;
            }

            // otherwise
            return $q.reject(response);

        }

        return function (promise) {
            return promise.then(success, error);
        }

    }];
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы