Estoy intentando:
Desafortunadamente, todos mis intentos hasta ahora no han funcionado, soy un principiante en JS, así que estoy tomando fragmentos y haciendo mi mejor esfuerzo aquí:
// var LS = document.querySelector('textarea').value().split('\n'); for (let i in LS) { setTimeOut(function(i),5000); } textInput = document.getElementById("theText"); textArray = textInput.value.split(/\n/g); const delayLoop = (fn, delay) => { return (line, i) => { setTimeout(() => { useTheText(line); }, i * 5000); } }; function useTheText(line){ console.log(line); } const handleClick = () => { textInput.value.split(/\n/g).forEach(delayLoop(useTheText, 500)); } <textarea id="theText" name="theText" rows="5" cols="33"> It was a dark and stormy night... second line line 3 </textarea> <div> <button onClick="handleClick()">process</button> </div>El primer argumento de setTimeout() debe ser una función para llamar. Estás llamando a la función inmediatamente.
Si desea que se ejecuten con 5 segundos de diferencia, multiplique el valor del tiempo de espera por i . El tiempo de espera se mide desde que llamas a setTimeout , no desde que se ejecutó la función anterior.
for (let i in LS) { setTimeout(() => yourFunction(LS[i]), i * 5000); }