He estado trabajando en un pequeño proyecto paralelo, un sitio web. Soy bastante nuevo en JS, así que busqué en Google muchas cosas y con relativa facilidad hice algunas cosas. Una de las cosas que hago es dibujar un carácter String a la vez con un pequeño tiempo de espera aleatorio.
También uso un método para agregar un carácter a la salida. Mi código se ve de la siguiente manera:
let content = ""; let desiredContent = "public static void main (String[] args) {\n\tSystem.out.println(\"Hello, World!\");\n}"; let lines = desiredContent.split("\n"); schedule(); // for all lines and chars output them. function schedule() { for (let i = 0; i < lines.length; i++) { for (let charIndex = 0; charIndex < lines[i].length; charIndex++) { setTimeout(addChar, Math.random() * 50 + 50, lines[i].charAt(charIndex)); } } } // add a char and update the output function addChar(c) { //console.log(c); content += c; codeBlockText.innerText = content; }Lo gracioso y lo que no entiendo es que cada vez que actualizo la salida parece ser completamente aleatoria. Todos los personajes están ahí, en un orden aparentemente aleatorio. El único elemento aleatorio es el tiempo de espera, que me aseguré de que en realidad sea el tiempo de espera.
Cuando hago que el tiempo de espera sea constante, parece que funciona ...
Mi pregunta es, si el tiempo de espera aleatorio interfiere con el hilo interno o si lo arruiné en alguna parte...