ExtendableEvent: метод waitUntil()
Базовая Широко поддерживается
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с апреля 2018 года.
Примечание: Эта функция доступна только в работе с веб-сервисами.
Метод ExtendableEvent.waitUntil() сообщает диспетчеру событий, что работа выполняется. Он также может использоваться для определения того, была ли эта работа успешной. В веб-сервисах waitUntil() сообщает браузеру, что работа выполняется до тех пор, пока обещание не будет выполнено, и он не должен завершать работу веб-сервиса, если эта работа должна быть завершена.
События install в веб-сервисах используют waitUntil() для удержания веб-сервиса на стадии installing до завершения задач. Если обещание, переданное в waitUntil(), отклоняется, установка считается неудачной, а устанавливаемый веб-сервис отбрасывается. Это используется в первую очередь для обеспечения того, что веб-сервис не считается установленным до тех пор, пока все основные кэши, от которых он зависит, не будут успешно заполнены.
События activate в веб-сервисах используют waitUntil() для буферизации функциональных событий, таких как fetch и push , до тех пор, пока обещание, переданное в waitUntil(), не будет выполнено. Это даёт веб-сервису время для обновления схем баз данных и удаления устаревших caches, так что другие события могут полагаться на полностью обновлённое состояние.
Метод waitUntil() должен быть первоначально вызван в обработчике события, но после этого он может быть вызван многократно, до тех пор, пока все переданные ему обещания не будут выполнены.
Синтаксис
waitUntil(promise)
Параметры
Возвращаемое значение
None (undefined).
Примеры
Использование waitUntil() в событии install веб-сервиса:
addEventListener("install", (event) => {
const preCache = async () => {
const cache = await caches.open("static-v1");
return cache.addAll(["/", "/about/", "/static/styles.css"]);
};
event.waitUntil(preCache());
});
Спецификации
| Спецификация |
|---|
| Веб-сервисы # dom-extendableevent-waituntil |
Совместимость с браузерами
| Рабочий стол | Мобильный | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
waitUntil |
40 | 17 | 44 | 24 | 11.1 | 40 | 44 | 24 | 11.3 | 4.0 | 40 |
async_waitUntil |
60 | 17 | 53 | 47 | 11.1 | 60 | 53 | 44 | 11.3 | 8.0 | 60 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/ExtendableEvent/waitUntil