nano-wallet-js
Version:
SDK for developers to create and interact with Nanocurrency wallet easily
26 lines (25 loc) • 597 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
class Locker {
isLocked = false;
queue = [];
async acquire() {
if (!this.isLocked) {
this.isLocked = true;
return;
}
return new Promise(resolve => {
this.queue.push(resolve);
});
}
release() {
if (this.queue.length > 0) {
const nextResolve = this.queue.shift();
nextResolve && nextResolve(true);
}
else {
this.isLocked = false;
}
}
}
exports.default = Locker;