mirror of
https://gerrit.wikimedia.org/r/mediawiki/skins/Vector.git
synced 2024-12-05 04:30:22 +00:00
23 lines
568 B
JavaScript
23 lines
568 B
JavaScript
|
/**
|
||
|
* Helper method that calls a specified callback before the browser has
|
||
|
* performed a specified number of repaints.
|
||
|
*
|
||
|
* Uses `requestAnimationFrame` under the hood to determine the next repaint.
|
||
|
*
|
||
|
* @param {Function} callback
|
||
|
* @param {number} frameCount The number of frames to wait before calling the
|
||
|
* specified callback.
|
||
|
*/
|
||
|
function deferUntilFrame( callback, frameCount ) {
|
||
|
if ( frameCount === 0 ) {
|
||
|
callback();
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
requestAnimationFrame( () => {
|
||
|
deferUntilFrame( callback, frameCount - 1 );
|
||
|
} );
|
||
|
}
|
||
|
|
||
|
module.exports = deferUntilFrame;
|