226 votes

Ce qui ' s l’équivalent de Java ' s thread.Sleep () en Javascript ?

Quel est l’équivalent de Java `` en Javascript ?

244voto

Daniel Pryden Points 22167

La réponse est simple, il n'y a pas une telle fonction.

La chose la plus proche que vous avez est:

var millisecondsToWait = 500;
setTimeout(function() {
    // Whatever you want to do after the wait
}, millisecondsToWait);

Notez que vous surtout ne voulez pas occupé-attendre (par exemple, en un tour de boucle), depuis votre navigateur est presque certainement l'exécution de votre code JavaScript dans un seul thread de l'environnement.

Voici un couple d'autres questions qui traitent de fils en JavaScript:

Et cette question peut également être utile:

92voto

David Miró Points 392

Essayez avec ce code. J’espère que c’est utile pour vous.

7voto

Nick Craver Points 313913

Il n'y a pas d'équivalent direct, comme il avait une pause d'une page web. Il y a cependant un setTimeout(), par exemple:

function doSomething() {
  thing = thing + 1;
  setTimeout(doSomething, 500);
}

Fermeture de l'exemple (merci Daniel):

function doSomething(val) {
  thing = thing + 1;
  setTimeout(function() { doSomething(val) }, 500);
}

Le second argument est de quelques millisecondes avant la cuisson, vous pouvez les utiliser pour les événements en temps ou en attente avant d'effectuer une opération.

Edit: mis à Jour en fonction des commentaires pour un résultat plus propre.

5voto

Malaxeur Points 4277

Vous pouvez écrire une boucle de rotation (une boucle qui se boucle juste pendant une longue période de temps effectuer une sorte de calculs pour la fonction de retard) ou utiliser :

Cela appellera « Func1() » au bout de 3 secondes.

Edit :

Le crédit va aux commentateurs, mais vous pouvez passer les fonctions anonymes à setTimeout.

C’est beaucoup plus efficace et n’appelle pas la fonction eval de javascript.

1voto

The Machine Points 448

Ou peut-être vous pouvez utiliser la fonction setInterval, pour appeler une fonction particulière, après le nombre spécifié de millisecondes. Il suffit de faire un google pour le prototype de setInterval. Je ne me souviens tout à fait il.

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