onebots
Version:
基于icqq的多例oneBot实现
29 lines (28 loc) • 640 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AsyncLock = void 0;
/**
* 异步锁---
*/
class AsyncLock {
constructor() {
this._lock = false;
this._waitList = [];
}
async lock() {
if (this._lock) {
await new Promise(resolve => {
this._waitList.push(resolve);
});
}
this._lock = true;
}
unlock() {
this._lock = false;
if (this._waitList.length > 0) {
let resolve = this._waitList.shift();
resolve && resolve();
}
}
}
exports.AsyncLock = AsyncLock;