From 953d7ee254fa92799acc4fee7bfd5c4e311ea711 Mon Sep 17 00:00:00 2001 From: CenTdemeern1 Date: Sat, 9 Nov 2024 02:33:23 +0100 Subject: [PATCH] Everything must be async I feel it's not proper to keep the promises `dismissWarning()` returns unhandled, even if they're infallible, but Hazel and Julia have forced my hand --- .../frontend/src/components/SkFlashPlayer.vue | 39 ++++++++++--------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/packages/frontend/src/components/SkFlashPlayer.vue b/packages/frontend/src/components/SkFlashPlayer.vue index a47197e03a..0dddc62e46 100644 --- a/packages/frontend/src/components/SkFlashPlayer.vue +++ b/packages/frontend/src/components/SkFlashPlayer.vue @@ -82,16 +82,16 @@ let loadingStatus = ref(undefined); let player = ref(undefined); let ruffleError = ref(undefined); -function dismissWarning() { +async function dismissWarning() { playerHide.value = false; - loadRuffle().then(() => { - try { - createPlayer(); - loadContent(); - } catch (error) { - handleError(error); - } - }).catch(handleError); + try { + await loadRuffle(); + // NOTE: I don't like this because this handles a success implicitly but Hazel and Julia have forced my hand + createPlayer(); + await loadContent(); + } catch (error) { + handleError(error); + } } function handleError(error: unknown) { @@ -170,22 +170,25 @@ function createPlayer() { /** * @throws If `player.value` is uninitialized. */ -function loadContent() { +async function loadContent() { if (player.value === undefined) throw Error('Player is uninitialized.'); ruffleContainer.value?.appendChild(player.value); loadingStatus.value = i18n.ts._flash.loadingFlashFile; - player.value.load(url.value).then(() => { + try { + await player.value.load(url.value); loadingStatus.value = undefined; - }).catch(error => { - fetch('https://raw.esm.sh/', { - mode: 'cors', - }).then(() => { + } catch (error) { + try { + await fetch('https://raw.esm.sh/', { + mode: 'cors', + }); + // NOTE: I don't like this because this handles a success implicitly but Hazel and Julia have forced my hand handleError(error); // Unexpected error - }).catch(() => { + } catch (_) { // Must be CSP because esm.sh should be online if `loadRuffle()` didn't fail handleError(i18n.ts._flash.cspError); - }); - }); + } + } } function playPause() {