| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.default = wrapperRaf;
- var raf = function raf(callback) {
- return setTimeout(callback, 16);
- };
- var caf = function caf(num) {
- return clearTimeout(num);
- };
- if (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {
- raf = function raf(callback) {
- return window.requestAnimationFrame(callback);
- };
- caf = function caf(handle) {
- return window.cancelAnimationFrame(handle);
- };
- }
- var rafUUID = 0;
- var rafIds = new Map();
- function cleanup(id) {
- rafIds.delete(id);
- }
- function wrapperRaf(callback) {
- var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
- rafUUID += 1;
- var id = rafUUID;
- function callRef(leftTimes) {
- if (leftTimes === 0) {
- // Clean up
- cleanup(id);
- // Trigger
- callback();
- } else {
- // Next raf
- var realId = raf(function () {
- callRef(leftTimes - 1);
- });
- // Bind real raf id
- rafIds.set(id, realId);
- }
- }
- callRef(times);
- return id;
- }
- wrapperRaf.cancel = function (id) {
- var realId = rafIds.get(id);
- cleanup(realId);
- return caf(realId);
- };
|