diff --git a/public/js/MusicController.js b/public/js/MusicController.js index 66f32271..49bc02c4 100644 --- a/public/js/MusicController.js +++ b/public/js/MusicController.js @@ -15,11 +15,7 @@ export default class MusicController { playHurryTheme() { const audio = this.player.playTrack('hurry'); - audio.loop = false; - const next = () => this.playTheme(1.2); - audio.addEventListener('ended', () => { - next(); - audio.removeEventListener('ended', next); - }); + this.player.waitForEnd(audio) + .then(() => this.playTheme(1.2)); } } diff --git a/public/js/MusicPlayer.js b/public/js/MusicPlayer.js index e36f96c6..273a411e 100644 --- a/public/js/MusicPlayer.js +++ b/public/js/MusicPlayer.js @@ -18,4 +18,11 @@ export default class MusicPlayer { audio.play(); return audio; } + + waitForEnd(audio) { + audio.loop = false; + return new Promise(resolve => { + audio.addEventListener('ended', resolve, {once: true}); + }); + } } \ No newline at end of file