42 lines
720 B
Markdown
42 lines
720 B
Markdown
|
|
Using `setInterval`:
|
|
|
|
```js run
|
|
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`:
|
|
|
|
|
|
```js run
|
|
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.
|
|
|