#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()