Files
cannaiq/frontend/node_modules/es-toolkit/dist/array/limitAsync.mjs
2025-11-28 19:45:44 -07:00

17 lines
398 B
JavaScript

import { Semaphore } from '../promise/semaphore.mjs';
function limitAsync(callback, concurrency) {
const semaphore = new Semaphore(concurrency);
return async function (...args) {
try {
await semaphore.acquire();
return await callback.apply(this, args);
}
finally {
semaphore.release();
}
};
}
export { limitAsync };