
Capita spesso che il nostro programma per Node.js debba svolgere delle operazioni temporizzate come, ad esempio, l’aggiornamento di dati o l’esecuzione di un’elaborazione. Lo si può fare con setInterval una funzione in grado di eseguire in maniera asincrona una porzione di codice ad intervalli regolari.
Vediamo un esempio subito:
setInterval(function() { console.log("Passati tre secondi..."); }, 3000);
Eseguendo in Node.js le precedenti righe di codice, ogni tre secondi viene stampata la stringa “Passati tre secondi…”. Il passo della temporizzazione viene fissato dal parametro che segue la funzione di callback (espresso in millisecondi).
Opzionalmente, si possono fornire ulteriori parametri alla funzione di callback:
setInterval(function(a,b) { // codice da eseguire a intervalli regolari }, 3000, "Ciao", 1234);
Un intervallo così impostato passerà alla funzione di callback: una stringa valorizzata a “Ciao”, utilizzabile attraverso la variabile a, ed il numero 1234 disponibile all’interno di b.
Un intervallo può sempre essere cancellato quando non più necessario e per questo esiste clearInterval:
var interval = setInterval( function() { // codice da eseguire ogni tre secondi }, 3000); clearInterval(interval);
Inoltre ricordiamo che esiste un’ulteriore funzione legata a questo discorso in Node.js: si chiama setTimeout e permette di definire operazioni asincrone da eseguire una sola volta allo scadere di un determinato lasso di tempo, specificato anche questo in millisecondi:
setTimeout(function () { // questa funzione verrà eseguita una sola volta console.log('Sono passati dieci secondi...'); }, 10000);
Anche in questo caso Node.js dimostra come, in maniera molto semplice, riesce a mettere a disposizione funzionalità importanti che permettono di organizzare, anche a livello temporale, il nostro flusso di esecuzione.
Alla prossima!
No Responses to “Node.js, gestire intervalli di tempo”