1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
- 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 _promiseUtils = require("./promiseUtils");
- var TaskQueue = function () {
- function TaskQueue() {
- (0, _classCallCheck2.default)(this, TaskQueue);
- this.queue = [];
- }
- return (0, _createClass2.default)(TaskQueue, [{
- key: "enqueue",
- value: function (task) {
- var _this = this;
- var taskComplete = (0, _promiseUtils.resolvingPromise)();
- this.queue.push({
- task: task,
- _completion: taskComplete
- });
- if (this.queue.length === 1) {
- task().then(function () {
- _this._dequeue();
- taskComplete.resolve();
- }, function (error) {
- _this._dequeue();
- taskComplete.reject(error);
- });
- }
- return taskComplete;
- }
- }, {
- key: "_dequeue",
- value: function () {
- var _this2 = this;
- this.queue.shift();
- if (this.queue.length) {
- var next = this.queue[0];
- next.task().then(function () {
- _this2._dequeue();
- next._completion.resolve();
- }, function (error) {
- _this2._dequeue();
- next._completion.reject(error);
- });
- }
- }
- }]);
- }();
- module.exports = TaskQueue;
- var _default = exports.default = TaskQueue;
|