/**
* Simple función que devuelve la hora actual para mostrarla en pantalla
*/
const getTime = () => {
d=new Date();
return d.getHours()+":"+d.getMinutes()+":"+d.getSeconds();
}
/**
* Este código utiliza el setInterval() para llamar una función cada segundo
* Una vez se han mostrado 10 valores, se cancela el intervalo
*/
const showMessage = () => {
document.write('<br>'+getTime()+' Ha pasado un segundo. Valor: '+(++i));
if (i==10) {
clearInterval(timer);
}
}
let i=0;
let timer=setInterval(showMessage, 1000);
/**
* Este código utiliza el setTimeout(), que se ejecuta dentro de una función
* que se va llamando a si misma cada vez que finaliza el setTimeout().
* Una vez ha mostrado los 10 valores, deja de ser llamada la función.
*/
const newTiming = (i) => {
if (i < 11) {
setTimeout(() => {
document.write('<br>'+getTime()+' Ha pasado un segundo. Valor: '+(i));
newTiming(i+1)
}, 1000);
}
}
newTiming(1);
/**
* Este código utiliza el setTimeout() juntamente con Promise(). Crea 10
* promesas a diferentes segundos, y va esperando a que vayan finalizando
* las promesas para ir mostrando los resultados.
*/
[...Array(10).keys()].forEach(i => {
new Promise((res, rej) => {
setTimeout(res, (i+1)*1000);
}).then(n => document.write('<br>'+getTime()+' Ha pasado un segundo. Valor: '+(i+1)));
});
/**
* Este código va creando un setTimeout() cada segundo hasta finalizar el bucle
* forEach(). Cada vez que se crea el setTimeout() se muestra el mensaje
*/
[...Array(10).keys()].forEach(i => {
setTimeout(() => {
document.write('<br>'+getTime()+' Ha pasado un segundo. Valor: '+(i+1))
}, (i+1)*1000);
});
Comentarios sobre la versión: 1 (1)