230 votes

Y a-t-il une fonction sommeil en JavaScript ?

Y a-t-il une fonction sommeil en JavaScript ?

335voto

SolutionYogi Points 16697

Si vous êtes à la recherche de bloquer l'exécution de code avec appel à la sleep, alors non, il n'y a pas de méthode pour que, en JavaScript.

JavaScript n'ont setTimeout méthode. setTimeout vous permettra de reporter l' exécution d'une fonction pour les x millisecondes.

setTimeout(myFunction, 3000);

// if you have defined a function named myFunction 
// it will run after 3 seconds (3000 milliseconds)

Rappelez-vous, c'est complètement différent de la façon dont sleep méthode, si elle existait, serait de se comporter.

function test1()
{    
    // let's say JavaScript did have a sleep function..
    // sleep for 3 seconds
    sleep(3000);

    alert('hi'); 
}

Si vous exécutez la fonction ci-dessus, vous devrez attendre 3 secondes (sleep méthode de l'appel est bloquant) avant de voir l'alerte "salut". Malheureusement, il n'y a pas d' sleep de la fonction, comme dans l' JavaScript.

function test2()
{
    // defer the execution of anonymous function for 
    // 3 seconds and go to next line of code.
    setTimeout(function(){ 

        alert('hello');
    }, 3000);  

    alert('hi');
}

Si vous exécutez test2, vous verrez 'hi' (setTimeout est non bloquant) et au bout de 3 secondes, vous allez voir l'alerte "bonjour".

92voto

Reema Points 249

Si vous exécutez la fonction ci-dessus, vous devrez attendre 3 secondes (appel à la méthode sleep bloque)

88voto

Andromeda Points 2401

Vous pouvez utiliser le ou fonctions.

49voto

Shalab Points 88
<pre><code></code><p>Ce code ne bloque pas... Il s’agit de monopolisant code CPU... C’est différent d’un thread se bloque et en relâchant les cycles CPU pour être utilisé par un autre thread... Aucune une telle chose ne se passe ici... N’utilisez pas ce code... mauvaise mauvaise idée.</p></pre>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X