MICHELEPISANI.IT
 

Una funzione per simulare l'effetto del setTimeout()

Simulare la funzione sleep() di PHP con Javascript

Novembre 28
07:042017

Il linguaggio PHP offre una funzione, chiamata sleep(), che consente di ritardare l'esecuzione di uno script per un tempo desiderato espresso in secondi.
Javascript invece non offre nativamente una funzione di questo tipo che può sembrare, all'apparenza, inutile ma che in talune circostanzze può rilevarsi funzionale, ad esempio per ritardare uno script in modo da attendere prima che un'altra funzionalità giunga al termine, oppure per essere utilizzata in sostituzione di una chiamata di tipo setTimeout().

Il codice seguente simula la funzione sleep() utilizzando il codice Javascript:

function sleep(milliseconds) {
  var start = new Date().getTime();
  for (var i = 0; i < 1e7; i++) {
    if ((new Date().getTime() - start) > milliseconds){
      break;
    }
  }
}

Per utilizzarlo basta semplicemente richiamare la funzione passando come parametro un tempo espresso in millisecondi, come nell'esempio seguente:

console.log(new Date());
console.log('Codice eseguito!');
sleep(1000);
console.log(new Date());

Provando ad eseguire il codice di cui sopra in console otteniamo un risultato simile al seguente:

Wed Nov 29 2017 00:27:16 GMT+0100 (CET)
Codice eseguito!
Wed Nov 29 2017 00:27:17 GMT+0100 (CET)

Ovvero il tempo trascorso tra la prima esecuzione e la seconda è esattamente di 1 secondi (1000 millisecondi).

Tags

Autore

Michele Pisani

Michele Pisani

Ho uno spiccato orientamento al problem-solving, se è troppo facile non mi diverto :)
Credo nella volontà e nel cambiamento perchè hanno fatto della mia passione il mio pane quotidiano.
Se devo descrivermi con una sola parola direi... "Concretezza", la mia stretta di mano è una garanzia.

0 Commenti

Non ci sono commenti

Nessuno ha ancora commentato questo articolo, fallo tu per primo!

Scrivi un Commento

Scrivi un Commento

Il tuo indirizzo email non sarà pubblicato.
I campi contrassegnati da un * sono obbligatori

Articoli e Argomenti correlati

Il Canale YouTube in ITALIANO

1 VIDEO GRATIS ogni 2 settimane! ISCRIVITI!

Entra a far parte della community su Facebook

Categorie popolari

Iscriviti alla mia newsletter

La tua e-mail con me sarà al sicuro.
Non fornirò mai le tue informazioni a nessuno!

Ultimi commenti

Michele Pisani

Ciao Salvatore, in tal caso dovresti fare riferimento alla specifica documentazione di Ionic con …

Salvatore

Buongiorno, nell'articolo si crea un app da zero ma se l'applicazione è già sviluppata con Angular …

Michele Pisani

Ciao stefano, i Google Forms sono molto blindati, tendenzialmente (salvo rari casi in difetto) …

stefano

Buongiorno, sono sviluppatore (php, js, dot.net) ma mi affaccio solo ora per alcuni favori alla …