C'è un modo per scoprire se ci sono timer attivi?Verifica se c'è un timeout attivo in Javascript
ho n-time con durate diverse, ad esempio:
Timer 1 -> 2-sec
Timer 2 -> 8-sec
..
...
Timer n -> n-sec
Ho bisogno di sapere quando tutti i timer sono finiti
HTML
<div id="time-out-1">
Time out 1:<span></span>
</div>
<div id="time-out-2">
Time out 2:<span></span>
</div>
<button>
Are all timers finished ?
</button>
JS
setTimeout(function() {
$("#time-out-1 span").text("Finished !");
},2000);
setTimeout(function() {
$("#time-out-2 span").text("Finished !");
},8000);
$('button').click(function(){
// if all timers are finished
// do something
});
Nota: ho bisogno di soluzione per questo particolare esempio, perché nel mio progetto ci sono n numero di file js che potrebbero avere i timer che vengono dichiarati come questo esempio
non credo che sia possibile determinare se un timer è attivo dal riferimento ad esso, come riferimento è solo un numero intero senza proprietà.Se puoi fornire dettagli su ciò che stai cercando di ottenere, potremmo essere in grado di suggerire un'alternativa. –
Se i timeout non sono sfalsati/ritardati, non sarebbe sufficiente controllare se il timeout * più lungo * si è verificato? In tal caso, potresti semplicemente attivare un valore booleano basato su quello. – Quantastical
@Quantastical Potrebbe fornire risultati imprevisti http://ejohn.org/blog/how-javascript-timers-work/ –