Valor de tiempo extraño en requestAnimationFrame () callback [duplicado]
const prev = performance.now();
requestAnimationFrame(now => console.log(now - prev));
¿Por qué now
siempre es menor que prev
(al menos en las últimas ramas de Chrome)?
Captura de pantalla:

Respuestas
Esto sucede porque solicita una animación entre el fotograma actual y el siguiente repintado, pero en realidad podría haber perdido el primer disparador de devolución de llamada del fotograma actual, que es cuando timestamp
se estableció el argumento.
Muchas llamadas a la requestAnimationFrame
devolución de llamada podrían ocurrir en este período de tiempo, pero todas tendrán el disparador de la devolución de llamada timestamp
del primero requestsAnimationFrame
en el marco activo que puede haber ocurrido antes de su llamada a performance.now()
.
MDN también declara:
A la función de devolución de llamada se le pasa un solo argumento, un DOMHighResTimeStamp similar al devuelto por performance.now (), que indica el momento en el que requestAnimationFrame () comienza a ejecutar funciones de devolución de llamada .