Угловой PWA никогда не переходит в стабильное состояние

#angular #progressive-web-apps #service-worker #angular-service-worker #angular-pwa

Вопрос:

Приложение Angular, над которым я работаю , никогда не переходит в стабильное состояние, основываясь на ApplicationRef.isStable том, что оно выдает только false один раз. Согласно угловым документам:

приложение никогда не будет стабильным, если вы запустите какую-либо повторяющуюся асинхронную задачу при запуске приложения (например, для процесса опроса, запущенного с помощью setInterval, setTimeout или с использованием операторов RxJS, таких как интервал).;

Поэтому я рассмотрел все способы использования setTimeout() , setInterval() (нет) и RxJS interval() , которые я отложил до appRef.isStable тех пор, пока не будет получено истинное и то же самое с подключением SignalR (типа websocket), но все это не помогло. Я пытался использовать инструменты DevTools «Производительность, память и маяк», чтобы найти источник этого нежелательного поведения, но единственная запущенная задача, которую я видел (в течение первой половины секунды на вкладке «Производительность»), была от zone.js и немного растущая куча JS: введите описание изображения здесь

На вкладке Сеть ничего не происходит, кроме ожидающего соединения с Angular 127.0.0.1:4200/sockjs-node/*/websocket на сервере разработчиков, что, я думаю, нормально. Такое же поведение (за исключением веб-сайта Angular) можно последовательно наблюдать во всех производственных средах.

Есть ли какой-нибудь способ отладить его, чтобы найти причину для этого? Есть еще какие-нибудь советы?

Ответ №1:

Это было вызвано оператором RxJS. windowTime()