wishthis/node_modules/rxjs/dist/esm/internal/scheduler/animationFrameProvider.js

27 lines
1.1 KiB
JavaScript
Raw Normal View History

2022-06-08 10:36:39 +00:00
import { Subscription } from '../Subscription';
export const animationFrameProvider = {
schedule(callback) {
let request = requestAnimationFrame;
let cancel = cancelAnimationFrame;
const { delegate } = animationFrameProvider;
if (delegate) {
request = delegate.requestAnimationFrame;
cancel = delegate.cancelAnimationFrame;
}
const handle = request((timestamp) => {
cancel = undefined;
callback(timestamp);
});
return new Subscription(() => cancel === null || cancel === void 0 ? void 0 : cancel(handle));
},
requestAnimationFrame(...args) {
const { delegate } = animationFrameProvider;
return ((delegate === null || delegate === void 0 ? void 0 : delegate.requestAnimationFrame) || requestAnimationFrame)(...args);
},
cancelAnimationFrame(...args) {
const { delegate } = animationFrameProvider;
return ((delegate === null || delegate === void 0 ? void 0 : delegate.cancelAnimationFrame) || cancelAnimationFrame)(...args);
},
delegate: undefined,
};
//# sourceMappingURL=animationFrameProvider.js.map