Saltar al contenido

¿Existe una función de suspensión en JavaScript?

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *