Valor de tempo estranho no retorno de chamada requestAnimationFrame () [duplicado]
const prev = performance.now();
requestAnimationFrame(now => console.log(now - prev));
Por que now
é sempre menor que prev
(pelo menos nos últimos branches do Chrome)?
Captura de tela:

Respostas
Isso acontece porque você solicita uma animação entre o quadro atual e a próxima repintura, mas pode realmente ter perdido o primeiro acionador de retorno de chamada do quadro atual, que é quando o timestamp
argumento foi estabelecido.
Muitas chamadas de requestAnimationFrame
retorno de chamada poderiam ocorrer neste intervalo de tempo, mas todas elas terão timestamp
o primeiro requestsAnimationFrame
gatilho de retorno de chamada no quadro ativo, que pode ter ocorrido antes de sua chamada para performance.now()
.
MDN também afirma:
A função de retorno de chamada recebe um único argumento, um DOMHighResTimeStamp semelhante ao retornado por performance.now (), indicando o ponto no tempo em que requestAnimationFrame () começa a executar funções de retorno de chamada .