@beenotung/tslib
Version:
utils library in Typescript
24 lines (23 loc) • 639 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.IntervalPool = void 0;
class IntervalPool {
interval;
currentTask = Promise.resolve();
constructor(interval) {
this.interval = interval;
}
async queue(f) {
return (this.currentTask = this.currentTask.then(() => new Promise((resolve, reject) => {
setTimeout(() => {
try {
resolve(f());
}
catch (e) {
reject(e);
}
}, this.interval);
})));
}
}
exports.IntervalPool = IntervalPool;