Solución:
Si está buscando bloquear la ejecución de código con una llamada a sleep
, entonces no, no hay método para eso en JavaScript
.
JavaScript
si tiene setTimeout
método. setTimeout
te dejare aplazar ejecución de una función durante x milisegundos.
setTimeout(myFunction, 3000);
// if you have defined a function named myFunction
// it will run after 3 seconds (3000 milliseconds)
Recuerde, esto es completamente diferente de cómo sleep
método, si existiera, se comportaría.
function test1()
{
// let's say JavaScript did have a sleep function..
// sleep for 3 seconds
sleep(3000);
alert('hi');
}
Si ejecuta la función anterior, tendrá que esperar 3 segundos (sleep
llamada al método está bloqueando) antes de que vea la alerta ‘hola’. Desafortunadamente no hay sleep
funcionar así en 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 ejecuta test2, verá ‘hola’ de inmediato (setTimeout
no bloquea) y después de 3 segundos verá la alerta ‘hola’.
Un método ingenuo que requiere un uso intensivo de la CPU para bloquear la ejecución durante varios milisegundos:
/**
* Delay for a number of milliseconds
*/
function sleep(delay) {
var start = new Date().getTime();
while (new Date().getTime() < start + delay);
}
Puedes usar el setTimeout
o setInterval
funciones.