UNPKG

nano-wallet-js

Version:

SDK for developers to create and interact with Nanocurrency wallet easily

23 lines (22 loc) 509 B
export default 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; } } }