No deberías solo intentar pausar 5 segundos en javascript. No funciona de esa manera. Puede programar una función de código para que se ejecute en 5 segundos a partir de ahora, pero debe poner el código que desea ejecutar más adelante en una función y el resto de su código después de esa función continuará ejecutándose inmediatamente.
Por ejemplo:
function stateChange(newState) {
setTimeout(function(){
if(newState == -1){alert('VIDEO HAS STOPPED');}
}, 5000);
}
Pero, si tienes un código como este:
stateChange(-1);
console.log("Hello");
La console.log()
declaración se ejecutará de inmediato. No esperará hasta que se active el tiempo de espera en la stateChange()
función. No puede simplemente pausar la ejecución de JavaScript durante un período de tiempo predeterminado.
En cambio, cualquier código que desee ejecutar retrasos debe estar dentro de la setTimeout()
función de devolución de llamada (o invocado desde esa función).
Si intentó "pausar" haciendo un bucle, esencialmente "colgaría" el intérprete de Javascript por un período de tiempo. Debido a que Javascript ejecuta su código en un solo subproceso, cuando realiza un bucle, no se puede ejecutar nada más (no se puede llamar a otros controladores de eventos). Por lo tanto, el bucle en espera de que cambie alguna variable nunca funcionará porque no se puede ejecutar ningún otro código para cambiar esa variable.