Я пытаюсь напечатать числа в свой div (прокрутить) от 0 до 5, затем 2-секундная пауза, а затем от 5-0. Что случилось ?
var i = 0;
var j = 5;
var scroll = document.getElementById('scroll');
function start() {
scroll.textContent += i;
setTimeout(start, 2000)
i++;
if (i > 5) {
setTimeout(start2, 2000)
scroll.textContent = '';
}
}
function start2() {
scroll.textContent += j;
setTimeout(start2, 2000)
j--;
if (j == 0) {
setTimeout(start, 200)
}
}
start();<div id = "scroll"></div>Вы должны добавить условия как к setTimeout(start, 2000) в start, так и к setTimeout(start2, 2000) в start2. Как и в первом случае, его следует вызывать только при появлении i <= 5, иначе он будет вызываться навсегда.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


var j = 5;
var scroll = document.getElementById('scroll');
function start() {
for (let i = 0; i <= j; ++i)
scroll.textContent += i;
setTimeout(start2, 2000)
}
function start2() {
for (let i = j; i; --i)
scroll.textContent += i;
setTimeout(start, 2000) // should you?
}
start();<div id = "scroll"></div>
вы вызываете
setTimeout(start, 2000), когда вы не должны.... То же самое с вашей другой функцией...