/// /** * @public */ declare class Lock { /** * size大小不合理 */ static readonly InvalidSizeError: { new (message?: string): { name: string; message: string; stack?: string | undefined; }; captureStackTrace(targetObject: object, constructorOpt?: Function | undefined): void; prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined; stackTraceLimit: number; }; /** * 放等待锁的回调函数 */ private queue; /** * 当前被占用的个数 * 每 lock 一次,size++ * 每 unlock 一次, size-- * 超过 maxSize 时,进入队列 * 当 unlock 时会检查队列是否为空 * 如果不为空则将队首任务出列、执行 */ private size; /** * 最大可以占用的个数 */ private maxSize; constructor(size?: number); /** * 设置能够同时获取多少次权限 */ private setSize; /** * 获取锁 */ lock(): Promise; /** * 尝试获取锁,需要注意获取到之后要释放 */ tryLock(): boolean; /** * 释放锁 * @throws Lock.InvalidSizeError 没有锁时释放锁 */ unlock(): void; /** * 释放锁 * @deprecated - Lock.unLock is deprecated, use Lock.unlock instead */ unLock(): void; } export default Lock;