Scopri i Timer di JavaScript
setTimeout()
Nel codice JavaScript, potresti voler ritardare l’esecuzione di una funzione.
Questo è il compito di setTimeout
. Specifichi una funzione di callback da eseguire in seguito e un valore che esprime quanto tempo dopo desideri che venga eseguita, in millisecondi:
Questa sintassi definisce una nuova funzione. Puoi chiamare qualsiasi altra funzione che desideri all’interno di essa o puoi passare un nome di funzione esistente e un set di parametri:
setTimeout
restituisce l’ID del timer. Questo non viene generalmente utilizzato, ma è possibile memorizzare questo ID e cancellarlo se si desidera eliminare questa esecuzione pianificata della funzione:
Ritardo zero
Se specifici il ritardo del timeout a 0
, la funzione di callback verrà eseguita il prima possibile, ma dopo l’esecuzione della funzione corrente:
Questo codice stamperà
Questo è particolarmente utile per evitare il blocco della CPU su compiti intensivi e consentire l’esecuzione di altre funzioni durante l’esecuzione di un calcolo pesante, accodando le funzioni nella pianificazione.
Alcuni browser (IE e Edge) implementano un metodo setImmediate()
che svolge questa stessa funzionalità esatta, ma non è standard e non disponibile su altri browser. Tuttavia, è una funzione standard in Node.js.
setInterval()
setInterval
è una funzione simile a setTimeout
, con una differenza: anziché eseguire la funzione di callback una volta, la eseguirà per sempre, all’intervallo di tempo specificato (in millisecondi):
La funzione sopra viene eseguita ogni 2 secondi a meno che tu non le dica di smettere, usando clearInterval
, passandogli l’ID dell’intervallo restituito da setInterval
:
È comune chiamare clearInterval
all’interno della funzione di callback di setInterval, per permetterle di determinare automaticamente se deve essere eseguita di nuovo o fermarsi. Ad esempio, questo codice esegue qualcosa a meno che App.somethingIWait non abbia il valore arrived
: