Это начальный вызов step
в следующем кадре анимации; это по сути начало анимации. Без этого у вас есть это:
let myReq;
function step(timestamp) {
myReq = requestAnimationFrame(step);
console.log(timestamp, myReq)
if(timestamp >= 1000) {
cancelAnimationFrame(myReq);
}
}
... в этом случае у нас никогда не будет звонящего на step
, и он никогда не вызывается.
В качестве альтернативы вы можете опустить оболочку requestAnimationFrame
для начального вызова step
:
let myReq;
function step(timestamp) {
myReq = requestAnimationFrame(step); // I understand why we call it here.
console.log(timestamp, myReq)
if(timestamp >= 1000) {
cancelAnimationFrame(myReq);
}
}
myReq = step; // why invoke rAF here.
Но при первом вызове step
необязательно будет ждать первый доступный кадр анимации.