Files
GDevelop/GDevelop.js/scripts/utils/SimplePromisePool.js
T
2024-10-14 12:06:42 +02:00

25 lines
548 B
JavaScript

const makeSimplePromisePool = async function (functions, n) {
return new Promise((resolve) => {
let inProgress = 0,
index = 0;
function helper() {
// base case
if (index >= functions.length) {
if (inProgress === 0) resolve();
return;
}
while (inProgress < n && index < functions.length) {
inProgress++;
functions[index++]().then(() => {
inProgress--;
helper();
});
}
}
helper();
});
};
module.exports = { makeSimplePromisePool };