@evolvejs/core
Version:
An advanced Discord API wrapper with TS and JS support
35 lines (34 loc) • 876 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AsyncronousQueue = void 0;
class AsyncronousQueue {
constructor() {
this._promises = [];
}
get resolved() {
return this._promises.length === 0;
}
get notResolved() {
return this._promises.length;
}
delay() {
const next = this._promises.length
? this._promises[this._promises.length - 1].promise
: Promise.resolve();
this.enqueue();
return next;
}
enqueue() {
let resolve;
const promise = new Promise((res) => {
resolve = res;
});
this._promises.push({ promise, resolve });
}
dequeue() {
const next = this._promises.shift();
if (next)
next.resolve();
}
}
exports.AsyncronousQueue = AsyncronousQueue;