@augment-vir/test
Version:
A universal testing suite that works with Mocha style test runners _and_ Node.js's built-in test runner.
26 lines (25 loc) • 769 B
JavaScript
import { DeferredPromise } from '@augment-vir/common';
/**
* Wait for an animation frame's duration. Optionally, wait for multiple frames by providing a
* `frameCount` input.
*
* @category Web
* @category Package : @augment-vir/web
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
*/
export async function waitForAnimationFrame(frameCount = 1) {
const deferredPromise = new DeferredPromise();
function requestNextFrame() {
requestAnimationFrame(() => {
frameCount--;
if (frameCount) {
requestNextFrame();
}
else {
deferredPromise.resolve();
}
});
}
requestNextFrame();
return deferredPromise.promise;
}