Mutex
A very simple Mutex, with an easy to use API and excellent TypeScript typings.
Installation
npm install --save ts-mutex
Usage
const lock = // Only one request will be sent at a time lock lock lock
API
new Mutex()
Creates a new Mutex
instance.
Mutex#locked: boolean
Whether the mutex is currently locked or not.
Mutex#use<T> (fn: () => T | PromiseLike<T>): Promise<T>
Aquire the lock, then execute (possibly async) function fn
, and finally release the lock. Returns a Promise
of whatever the function fn
returns.
The lock will be released even if fn
throws or returns a rejected Promise
. In this case, the Promise
returned will also be rejected with that error.