Bueno realmente esto me tiene harto.
Tengo unos dias buscando una solucion para realizar la funcion sleep en javascript y que funcione en Internet Explorer.
Mi solucion anterior fue usar promesas y funciona de maravilla, pero el detalle que tengo unos patrones que no salen de la edad de piedra y siguen usando Internet Explorer, no quieren usar Chrome por nada del mundo.
Solución anterior:
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
Funciona al 100 en Crome y otros navegadores mas actualizados pero no sirve ni en Internet Explorer 11. Marca error por que no reconoce las parabras para await y async y no reconoce la sintaxis de => para el resolve....
Ahora tome de stack overflow el siguiente código.
https://stackoverflow.com/questions/36016327/how-to-make-promises-work-in-ie11y NO FUNCIONA
function sleep(ms) {
tiempo = ms;
return new Promise(function(resolve) {
setTimeout(function() {
resolve("result");
}, tiempo);
});
}
Este si reconoce la sintaxis de la funcione, pero de todos modos sigue marcando error en los async y await.
Ya intente, genera una peticion async = false al Servidor para que el servidor realizare el tiempo de espera, pero no es respetado por los navegadores.
Tambien he intentado y NO FUNCIONA
function sleep(delay) {
var start = new Date().getTime();
while (new Date().getTime() < start + delay);
}
Tomado de:
https://eureka.ykyuen.info/2011/02/20/javascript-sleep-function/Alguno de ustedes tiene algo de experiencia con esto.
Saludos!