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:
Código
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-ie11
y NO FUNCIONA
Código
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
Código
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!