@hortemo/semaphore
v1.0.1
Published
A minimal FIFO semaphore for JS/TS.
Maintainers
Readme
@hortemo/semaphore
Promise-based FIFO semaphore for JavaScript and TypeScript.
Install
npm install @hortemo/semaphoreUse
import Semaphore from "@hortemo/semaphore";
const semaphore = new Semaphore(5);
async function processItem(item: string): Promise<void> {
const release = await semaphore.acquire();
try {
await doWork(item);
} finally {
release();
}
}
await Promise.all(items.map(processItem));API
new Semaphore(permits: number): Create a semaphore withpermitsavailable.await semaphore.acquire(): Wait for a permit and receive aReleaser. Call it to free the permit.type Releaser = () => void
