O código abaixo para detectar se um browser tem suporter para imagens do tipo Webp, faz uso dos comandos async / await para gerir as promises. Da mesma forma, o código abaixo pode ser executado em um service worker.
async function supportsWebp() { if (!self.createImageBitmap) return false; const webpData = 'data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAAAAAAfQ//73v/+BiOh/AAA='; const blob = await fetch(webpData).then(r => r.blob()); return createImageBitmap(blob).then(() => true, () => false); } (async () => { if(await supportsWebp()) { console.log('Webp é suportado pelo navegador.'); } else { console.log('Webp não é suportado pelo navegador.'); } })();