Es pregunta de principiante. Estoy tratando de entender setTimeout. Quiero imprimir cada número después de un retraso de 2 segundos. Sin embargo, solo puedo retrasar toda la función, no los números. ¿Alguien puede decirme cómo hacerlo?
function print() { for (let i = 10; i >= 0; i--) { console.log(i); } } setTimeout(print, 2000);Debe usar setTimeout dentro del método de print ( dentro de for ) y dar un retraso diferente para cada iteración.
function print() { for (let i = 10; i >= 1; i--) { setTimeout(() => { console.log(i); }, 2000 * (10 - i)); } } print();Otro enfoque es usar setInterval . Es más natural para esta tarea que setTImeout .
let i = 10; const interval = setInterval(() => { console.log(i); i--; if(i === 0){ clearInterval(interval); } }, 2000);setTimeout aquí retrasará toda la función y si obtengo lo que quiere hacer es imprimir cada número en 2s de retraso. Recomiendo usar Promises y la función asíncrona . aquí hay una solución con solo setTimeout
function print(i){ console.log(i) if(i>0){ setTimeout(()=>{print(i-1)},2000) } } print(10)