Now that promises and await/async are standard in the node ecosystem, I could be nice to have an async function like this directly integrated in the library :
await sem.asyncTake();
// I'm currently doing it like this:
const asyncTake = sem => new Promise((resolve, reject) => sem.take(resolve));