#javascript #reactjs #error-handling #boolean #service-worker
Вопрос:
У меня в сервисе есть код, который проверяет, есть ли веб-сайт в Сети:
var check = false; setInterval(checkOnline, 60000);
Этот код каждую минуту проверяет в фоновом режиме, находится ли веб-сайт в сети. Этот код:
function checkOnline() { fetch(www.example.com) .then(response =gt; { }) .catch(error =gt; { const title = 'hhh'; const options = { body: 'hhh', icon: 'images/icon.png', badge: 'images/badge.png' }; self.registration.showNotification(title, options) check = true; }); }
Проблема в том, что, когда он устанавливает логическое значение true в этой функции, работник службы снова запускает страницу, и по умолчанию логическое значение имеет значение false, но мне нужно, чтобы оно оставалось истинным, поэтому оно делает что-то только один раз, а не все время, пока код отправляется в ловушку. Как мне решить эту проблему? Я просто хочу, чтобы, если веб-сайт находится в автономном режиме, он показывал уведомление только один раз. Но он продолжает запускать код, поэтому уведомление будет приходить каждую минуту, если веб-сайт находится в автономном режиме. Весь этот код находится в моем сервисе, потому что его нужно проверить, даже если браузер не открыт. Это приложение PWA.