Internet JavaScript: Sleep and setTimeout

A veces un programador se encuentra en una situación en la que la ejecución del programa debe interrumpirse por un corto tiempo. Para lograr esto, hay varias posibilidades en los diferentes lenguajes de programación. En JavaScript, desde ES6, existe la opción de usar Promesas para este propósito.

  • Implementar una función de suspensión
  • Ejecutar una función con un retardo

Implementar una función de suspensión

Para suspender unos segundos en JavaScript, es suficiente definir una pequeña función auxiliar para usted. La función Sleep devuelve un objeto Promise cuyo estado se establece en resuelto en milisegundos después del tiempo deseado.
function Sleep(milliseconds) {
return new Promise(resolve => setTimeout(resolve, milliseconds));
}
Si desea utilizar esta funcionalidad ahora, usted tiene que marcar su función con la palabra clave async. Sin asincronización, no está permitido usar el comando await. Un ejemplar de la aplicación muestra la siguiente función:
async function test() {
console.log("Vor der sleep-Funktion");
await Sleep(3000); // Pausiert die Funktion für 3 Sekunden
console.log("Nach der Sleep Funktion");
}
la función llama a La función sleep. Usando await, la ejecución de la función se detiene durante el tiempo especificado. Sin await, la función continuaría ejecutándose porque no espera la resolución del objeto Promise devuelto por Sleep.

Ejecutar una función con un retardo

Para ejecutar una función después de un cierto tiempo de espera, existe la función setTimeout. Con setTimeout pasa una llamada función de devolución de llamada para que se ejecute. Esta función se realiza después del tiempo especificado. Así que define una función a la que llamar:
function callback() {
console.log("Callback Funktion wird aufgerufen");
}

Ahora puede usar setTimeout para llamar a la función que acaba de crear con el retraso especificado. Sin embargo, debe tenerse en cuenta que el siguiente código se ejecuta sin tiempo de espera:
setTimeout(callback, 3000); //Ruft die Callback-Funktion nach 3 Sekunden auf
console.log("Test"); //Wird sofort, ohne Wartezeit ausgeführt

Alternativamente, también es posible pasar una expresión de función como argumento a setTimeout. Así que también puedes llamar a setTimeout de esta manera:
setTimeout(function() {
console.log("Callback Funktion wird aufgerufen");
}, 3000);
La ventaja aquí es que no es necesario definir ninguna función nueva y puede ver inmediatamente qué bloque de código se ejecuta después del retraso.

Comentarios sobre sugerencias
Comentarios sobre sugerencias

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

More: