Salve, come posso creare un tempo di SLEEP di un ciclo FOR per x secondi o millisecondi dopo del quale il ciclo riprenda?
Grazie
Salve, come posso creare un tempo di SLEEP di un ciclo FOR per x secondi o millisecondi dopo del quale il ciclo riprenda?
Grazie
Prova con : 3000 = 3 secondi.
setTimeout(function(){}, 3000);
Ridatemi i miei 1000 posts persi !!!!
Non serve a nulla ottimizzare qualcosa che non funziona.
Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr
Ciao badaze, grazie per la risposta.
Certo che con setTimeout si ottiene qualcosa di simile a quanto cerco, ma in realtà speravo in qualcosa tipo sleep(sec) dove si potesse indicare un valore per il sec che avrebbe comportato un congelamento della funzione che avrebbe successivamente ripreso dopo il trascorrere dei secondi o millisecondi impostati.
Comunque grazie lostesso.
Ti crei una funzione che si chiama Sleep ed è fatta.
Ridatemi i miei 1000 posts persi !!!!
Non serve a nulla ottimizzare qualcosa che non funziona.
Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr
setTimeout() non funziona in maniera sincrona, messo dentro un ciclo for non sortirebbe nessun effetto.
Per usare setTimeout, dovrebbe sostituire il ciclo for con una funzione ricorsiva.
Uno pseudo sleep si potrebbe ottenere usando "async" e "await", novità js del 2017.
@lucavizzi. Verissimo !!! Lo sapevo ma non ci ho proprio pensato !
Comunque si puo' fare usando le date. Ma non vedo a cosa possa servire visto che la pagina non si aggiorna.
codice HTML:<script> function sleep(seconds) { var maxDate = new Date(); maxDate.setSeconds(maxDate.getSeconds() + seconds); var curDate = new Date(); while (maxDate.toISOString() > new Date().toISOString()); } </script>
Ridatemi i miei 1000 posts persi !!!!
Non serve a nulla ottimizzare qualcosa che non funziona.
Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr
Una implementazione usando le promises:
codice:<!doctype html> <html> <head> <meta charset="utf-8"> <title>Javascript sleep using promises</title> <script type="text/javascript"> function sleep(ms) { return new Promise(resolve=>setTimeout(resolve,ms)); } async function demo() { for(var i=0; i<3; i++){ alert(i+' of 2'); await sleep(5000) } } demo(); </script> </head> <body> </body> </html>