## Output every second

importance: 5

Write a function `printNumbers(from, to)`

that outputs a number every second, starting from `from`

and ending with `to`

.

Make two variants of the solution.

- Using
`setInterval`

. - Using recursive
`setTimeout`

.

Using `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);
```

Using recursive `setTimeout`

:

```
function printNumbers(from, to) {
let current = from;
setTimeout(function go() {
alert(current);
if (current < to) {
setTimeout(go, 1000);
}
current++;
}, 1000);
}
// usage:
printNumbers(5, 10);
```

Note that in both solutions, there is an initial delay before the first output. Sometimes we need to add a line to make the first output immediately, that’s easy to do.