UNPKG

nano-wallet-js

Version:

SDK for developers to create and interact with Nanocurrency wallet easily

25 lines (21 loc) 428 B
export default class Locker { isLocked = false; private queue: ((value: unknown) => void)[] = []; 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; } } }