UNPKG

@dfinity/assets

Version:

JavaScript and TypeScript library to manage assets on the Internet Computer

26 lines 748 B
/** * Minimal promise executor with concurrency limit implementation * @param concurrency Maximum number of promises executed concurrently */ export const limit = (concurrency) => { const queue = []; let active = 0; const next = () => { if (active < concurrency && queue.length > 0) { active++; const { fn, resolve, reject } = queue.shift() ?? {}; fn?.() .then(resolve) .catch(reject) .then(() => { active--; next(); }); } }; return (fn) => new Promise((resolve, reject) => { queue.push({ fn, resolve, reject }); next(); }); }; //# sourceMappingURL=limit.js.map