MDN предлагает сделать следующее, чтобы создать и заполнить кеш сервис-работника:
this.addEventListener('install', function(event) {
event.waitUntil(
caches.open('v1').then(function(cache) {
return cache.addAll([
'/sw-test/',
'/sw-test/index.html',
... etc ...
]);
})
);
});
Я не понимаю этот код. Метод waitUntil
задокументирован, и, похоже, этот код является единственной целью его существования на данный момент:
Метод ExtendableEvent.waitUntil() расширяет время жизни события. При вызове в EventHandler, связанном с событием установки, он задерживает обработку установщика, установленного до тех пор, пока принятое обещание не будет успешно разрешено. Это в первую очередь используется для обеспечения того, чтобы работник службы не считался установленным до тех пор, пока не будут заполнены все основные кэши, от которых он зависит.
Я не понимаю, что:
- Как
waitUntil
обычно влияет на поток кода? Остановляет ли это событие распространение до тех пор, пока обещание не решит? - Почему это необходимо в контексте открытия кэша сотрудников?
Я задаю этот вопрос, потому что у меня проблемы с кодом выше, и я хотел бы это понять.