choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
45 lines (34 loc) • 1.31 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _mobx = require("mobx");
var _debounce = _interopRequireDefault(require("lodash/debounce"));
var _utils = require("../data-set/utils");
var BatchRunner = /*#__PURE__*/function () {
function BatchRunner() {
var batchInterval = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 100;
(0, _classCallCheck2["default"])(this, BatchRunner);
this.run = (0, _debounce["default"])((0, _mobx.action)(function (tasks) {
tasks.forEach(function (task) {
return task();
});
tasks.clear();
}), batchInterval);
}
(0, _createClass2["default"])(BatchRunner, [{
key: "addTask",
value: function addTask(key, callback) {
this.run((0, _utils.getIf)(this, 'task', function () {
return new Map();
}).set(key, callback));
}
}]);
return BatchRunner;
}();
exports["default"] = BatchRunner;
//# sourceMappingURL=BatchRunner.js.map
;