Синхронный код выполняется так, что весь ваш код должен быть sh завершен, прежде чем что-либо может быть обновлено или "отображено" на экране. Таким образом, for l oop будет работать до тех пор, пока это не будет выполнено, затем экран обновится, но, конечно же, он будет иметь только окончательный вид выполненного кода для рендеринга.
Чтобы исправить это внутри каждой итерации для l oop вы должны запустить асинхронную функцию, которая будет обновляться позже и позже, за пределами текущего синхронного для кода l oop.
например:
const download = function () {
return "ready player "
};
for (let i = 1; i <= 10; i++) {//the code will only iterate 10 times
setTimeout(function () {
console.log(download()+i);
}, 500 * i); //reduced the timer here to 500
}