JavaScript warten, bis sich Variable ändern?

2 Antworten

Die Variable selbst kannst bzw. solltest du nicht überwachen.

Mit einem while-Loop wie es Funcional vorschlägt ist das völliger Quatsch, da bleibt die komplette Oberfläche hängen. Wenndann per setInterval, aber das ist keine Good Practice - Busy Waiting und auch Lazy Polling sollte man vermeiden.

Du kannst deinen Code zum Beenden der Ladeanimation einfach in den Setter schreiben, der die Variable setzt, oder in deinen Socket-Listener, der den Setter aufruft.

Beim Email-Submit: Ladeanimation einblenden

socket.emit('email-submit', value);
loadingAnimation.classList.remove('hidden');

Bei Empfangen der Antwort: Ladeanimation ausblenden

socket.on('badEmailORphone', msg => {
  loadingAnimation.classList.add('hidden');
  setBadEmailORphone(msg)
});  
Woher ich das weiß:Studium / Ausbildung – Bachelor in Informatik 👨🏻‍🎓

"setBadEmailOrphone" ist ja wohl eine Funktion, die eine andere Variable (wahrscheinlich "badEmailOrphone"?) setzt. Sprich, du kannst diese Variable prüfen und anhand dieser einen Ladebildschirm anzeigen:

while (!badEmailOrphone) {
  // etwas anzeigen
}

Ansonsten bräuchte man da schon etwas mehr Kontext, z.B. ob ein Framework verwendet wird (React?), oder pures JavaScript etc.

Woher ich das weiß:Berufserfahrung – Inhaber einer App-Agentur & 15+ Jahre Programmiererfahrung