Rolf B: Async Await und .then()?

Beitrag lesen

Hallo Bertl,

das klingt erstmal vielversprechend, du musst nur schauen, ob Du die Eventlistener auch wieder entfernen musst. Das ist nicht nötig, wenn die Elemente nach Abschluss der Animation aus dem DOM entfernt werden, oder Du sicher bist, dass die Animation nur einmal spielt. Aber wenn sie ggf. mehrfach ablaufen kann, hättest Du ohne removeEventListener nachher mehrere Listener laufen.

Da Du auf ein animationend nur einmal reagieren musst, bietet sich hier die once Option von addEventListener an:

async function functionMitPromiseWennAnimationEnde(elem, class) {
   return new Promise((resolve,reject) => {
      elem.classList.add(class);
      elem.addEventListener(
         "animationend",
         function() {
            elem.classList.remove(class);
            resolve();
         },
         { once: true });

   });
}

Rolf

--
sumpsi - posui - obstruxi