Ваш for (let k=1 ; k < 1111 ; k++) requestAnimationFrame(step);
вызывает все requestAnimationFrame
одновременно, поэтому все 1110
вызовы на step
запланированы на следующий кадр анимации, и поэтому они вызываются все одновременно.
Это будет установка для запуска функции step
для каждого кадра анимации 1111 раз.
function step(timestamp) {
times[i++] = timestamp;
if( i < 1111 ) {
requestAnimationFrame(step)
}
}
requestAnimationFrame(step)
Изменение:
for (let k=1 ; k < 1111 ; k++) {
requestAnimationFrame(step);
}
на:
for (let k=1 ; k < 1111 ; k++) {
for (let o=1 ; o < 11111111 ; o++) {} // i guess it put some delay between each call to requestAnimationFrame
requestAnimationFrame(step);
}
ничего не меняет, не имеет значения, сколько времени занимает цикл.JavaScript является однопоточным.Начиная с этого цикла, никакой другой код не будет выполняться между ними.Таким образом, все requestAnimationFrame(step);
внутри цикла всегда будут поставлены в очередь для того же следующего кадра анимации.