Вы можете добавить другое значение, потому что у вас разные времена для тайм-аута.
У вас есть
time 1000 2000 3000
values 1 2 3
4 5 6
но вам нужно
time 1000 2000 3000
values 1 3 5
2 4 6
Это означает, что вам нужно вернуть только значение, увеличенное на единицу вместо трех.
function add_count(i){
document.body.appendChild(document.createElement('pre')).innerHTML = i;
}
function count_three_up(i){
setTimeout(add_count, 1000, i);
setTimeout(add_count, 2000, i + 2);
setTimeout(add_count, 3000, i + 4);
return i + 1;
}
next_number = count_three_up(1);
count_three_up(next_number);