A Service worker - это не просто еще один поток, а очень специфический тип потока c. Поскольку он предназначен для перехвата запросов на извлечение сети и ресурсов и что-то с ними делать. В своей основной форме c он кэширует, если сеть недоступна, но также может возвращать ресурс, отличный от запрошенного, более старую версию или заполнитель и т. Д. c.
Например. если у моего сервис-воркера ... setInterval (()=>{console.log('foo'),
1000})
... будет ли это исключение? он будет работать, а затем потерпит неудачу? зависит ли поведение браузера?
Вероятно, это сработает. Однако в этом очень мало смысла, поскольку у вас нет доступа к DOM и вы не можете напрямую взаимодействовать с пользователем. Самое большее, вы можете распечатать ошибки и предупреждения, хотя я не знаю, какое предупреждение потребует интервального опроса.
Судя по вопросу, похоже, вы пытаетесь выполнить sh некоторую фоновую работу, не блокируя основной нить. В этом случае вам подойдет более общий тип c ( Worker API ).