Un résultat par seconde
importance: 5
Écrire une fonction printNumbers(from, to) qui affiche un nombre par seconde, en partant de from jusqu’à to.
Faites deux variantes de la solution :
- utilisant
setInterval, - Utilisation de
setTimeoutimbriqué.
Avec setInterval:
function printNumbers(from, to) {
let current = from;
let timerId = setInterval(function() {
alert(current);
if (current == to) {
clearInterval(timerId);
}
current++;
}, 1000);
}
// usage:
printNumbers(5, 10);
Utilisation de setTimeout imbriqué :
function printNumbers(from, to) {
let current = from;
setTimeout(function go() {
alert(current);
if (current < to) {
setTimeout(go, 1000);
}
current++;
}, 1000);
}
// utilisation :
printNumbers(5, 10);
Notons que, dans les deux solutions, il y a un délai initial avant le premier résultat. En effet, la fonction est appelée pour la première fois au bout de 1000ms.
Afin d’exécuter la fonction immédiatement, on peut ajouter un autre appel avant setInterval.
function printNumbers(from, to) {
let current = from;
function go() {
alert(current);
if (current == to) {
clearInterval(timerId);
}
current++;
}
go();
let timerId = setInterval(go, 1000);
}
printNumbers(5, 10);