From 4dcac236881ac667b3dce1d548951cec5698ea7e Mon Sep 17 00:00:00 2001 From: JellyBrick Date: Sat, 2 Dec 2023 04:28:38 +0900 Subject: [PATCH] feat: async video event dispatch --- src/providers/song-info-front.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/providers/song-info-front.ts b/src/providers/song-info-front.ts index 462e3f26..2133d1eb 100644 --- a/src/providers/song-info-front.ts +++ b/src/providers/song-info-front.ts @@ -114,14 +114,16 @@ export default (api: YoutubePlayer) => { pause: (e: Event) => playPausedHandler(e, 'pause'), }; + const videoEventDispatcher = async (name: string, videoData: VideoDataChangeValue) => document.dispatchEvent( + new CustomEvent('videodatachange', { + detail: { name, videoData }, + }), + ); + const waitingEvent = new Set(); // Name = "dataloaded" and abit later "dataupdated" api.addEventListener('videodatachange', (name: string, videoData) => { - document.dispatchEvent( - new CustomEvent('videodatachange', { - detail: { name, videoData }, - }), - ); + videoEventDispatcher(name, videoData); if (name === 'dataupdated' && waitingEvent.has(videoData.videoId)) { waitingEvent.delete(videoData.videoId);