We have a array of promises . We have to resolve them in such a way that at a time there should not be more than 3 unresolved promises enter code here
my approach is
const promises = [
new Promise(function (resolve, reject) {
resolve();
}),
new Promise(function (resolve, reject) {
resolve();
}),
new Promise(function (resolve, reject) {
resolve();
}),
new Promise(function (resolve, reject) {
resolve();
}),
];
const bucket = [];
const interval = setInterval(function () {
// Filter the unresolved promises.
const unresolvedPromises = promises.filter(function (promise) {
if (promise.done && promise.done === true) {
return false;
}
return true;
});
// Add the unresolved promises in the bucket.
for (let i = 0; i < 3 - bucket.length; ++i) {
bucket.push(unresolvedPromises[i]);
}
if (unresolvedPromises.length === 0) {
clearInterval(interval);
}
console.log(bucket);
}, 10);