Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
|
- 'use strict';
-
- module.exports = class Queue {
- _queue = [];
- _executing = false;
- _jobRunner = null;
-
- constructor(jobRunner) {
- this._jobRunner = jobRunner;
- }
-
- enqueue = (...args) => {
- this._queue.push(args);
- this._dequeue();
- };
-
- destroy() {
- this._queue.length = 0;
- this._jobRunner = null;
- }
-
- _dequeue() {
- if (this._executing || !this._queue.length) return;
- this._executing = true;
-
- this._jobRunner(...this._queue.shift());
-
- setTimeout(() => {
- this._executing = false;
- this._dequeue();
- });
- }
- };
|