Questo è un po 'un tipo di domanda "che è meglio, pesce o colore arancione", ma in termini di comportamento generale di JavaScript, e in particolare il lato più funzionale della sua natura, è probabilmente più idiomatico da usare eventi per reagire ai cambiamenti di stato piuttosto che avere un sistema di polling temporizzato.
È molto più flessibile e meno confuso aggiungere e rimuovere i listener di eventi man mano che l'applicazione inizia a crescere. Il sondaggio è più facile da concettualizzare quando si immagina dapprima tutto in un punto centrale, ma la domanda diventa sempre più complessa e potrebbe diventare sempre più difficile, mentre gli eventi possono arrivare da qualsiasi luogo e andare ovunque, quindi sono molto meno strettamente accoppiati.
Anche quando un evento viene attivato e non c'è nessuno a sentirlo, non succede nulla. Se hai un sacco di loop di polling basati sul timeout, potresti scoprire che le cose accadono dopo che il sistema principale si è arrestato in modo anomalo come trigger di timeout, il che rende il debug del problema o il controllo di eventuali log più confusi.
In pratica, se stai animando le cose, probabilmente vorrai usare un certo grado di polling per il tuo ciclo di animazione e gli eventi per comunicare quando attivare altre animazioni o quando si verificano interazioni, quindi probabilmente vorrai usarle entrambe.