NuclearDispersionSystem/ant-design-vue-jeecg/node_modules/qiankun/es/sandbox/patchers/interval.js
2023-09-14 14:47:11 +08:00

33 lines
1.1 KiB
Java

import _noop from "lodash/noop";
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
var rawWindowInterval = window.setInterval;
var rawWindowClearInterval = window.clearInterval;
export default function patch(global) {
var intervals = [];
global.clearInterval = function (intervalId) {
intervals = intervals.filter(function (id) {
return id !== intervalId;
});
return rawWindowClearInterval.call(window, intervalId);
};
global.setInterval = function (handler, timeout) {
for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
args[_key - 2] = arguments[_key];
}
var intervalId = rawWindowInterval.apply(void 0, [handler, timeout].concat(args));
intervals = [].concat(_toConsumableArray(intervals), [intervalId]);
return intervalId;
};
return function free() {
intervals.forEach(function (id) {
return global.clearInterval(id);
});
global.setInterval = rawWindowInterval;
global.clearInterval = rawWindowClearInterval;
return _noop;
};
}