2011-10-21 19 views

Respuesta

171

Necesita volver a factorizar el código en pedazos. Esto no detiene la ejecución, solo pone una demora entre las partes.

function partA() { 
    ... 
    window.setTimeout(partB,1000); 
} 

function partB() { 
    ... 
} 
+2

¿Se puede pasar un parámetro a 'partB' en' window.setTimeout (partB, 1000) '? – brain56

+5

Si lo envuelve en una función anónima, como en la respuesta de Michael Haren, entonces puede. –

+19

Esta respuesta es solo la mitad de correcta. 'setTimeout()' no es lo mismo que 'sleep()'. 'setTimeout()' planifica la función nombrada para que se ejecute de manera asíncrona a una hora determinada en el futuro. El resto de su código no esperará hasta que se ejecute la función 'partB', que no tiene la misma funcionalidad que' sleep() '. Ver: http://stackoverflow.com/questions/4122268/using-settimeout-synchronously-in-javascript – cartbeforehorse

101

No puede (y no debe) bloquear el procesamiento con una función de reposo. Sin embargo, puede utilizar setTimeout para dar inicio a una función después de un retraso:

setTimeout(function(){alert("hi")}, 1000); 

Dependiendo de sus necesidades, setInterval podría ser útil, también.

+9

'sleep' no bloquea el procesamiento; permite que el procesamiento continúe. – EML

9

setTimeout() función se utiliza para retrasar un proceso en JavaScript.

w3schools tiene un fácil tutorial sobre esta función.

+3

w3School no es confiable, use esto en su lugar: https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout – jolySoft

Cuestiones relacionadas