Potremmo decidere di non eseguire subito una funzione, ma dopo un certo lasso di tempo. Questo è detto “pianificare una chiamata” (“scheduling a call”).
Ci sono due metodi per farlo:
setTimeoutpermette di eseguire una volta la funzione dopo l’intervallo prescelto.setIntervalpermette di eseguire regolarmente la funzione lasciando scorrere l’intervallo di tempo prescelto tra una chiamata e l’altra.
Questi metodi non fanno parte delle specifiche di JavaScript. Ma la maggior parte degli ambienti hanno un pianificatore interno e forniscono questi metodi. In particolare, sono supportati in tutti i browser e in Node.js.
setTimeout
La sintassi:
let timerId = setTimeout(func|codice, [ritardo], [arg1], [arg2], ...)
Parametri:
func|codice- Funzione o stringa (string) di codice da eseguire. Di solito è una funzione. Per ragioni storiche, si può passare una stringa (string) di codice, ma è sconsigliato.
ritardo- Il ritardo in millisecondi (1000 ms = 1 secondo) prima dell’esecuzione, di base 0.
arg1,arg2…- Gli argomenti della funzione (non supportati in IE9-)
Per esempio, questo codice esegue saluta() dopo un secondo:
function saluta() {
alert('Ciao');
}
setTimeout(saluta, 1000);
Con gli argomenti:
function saluta(frase, chi) {
alert( frase + ', ' + chi );
}
setTimeout(saluta, 1000, "Ciao", "Giovanni"); // Ciao, Giovanni
Se il primo argomento è una stringa (string), JavaScript crea una funzione dallo stesso.