Loading problem…
Implement promiseLimit(tasks, k) to control the number of concurrently executing asynchronous tasks.
You are given an array of functions, where each function returns a Promise. Execute these tasks such that at most k promises are running at any given time.
k tasks should run in parallel.Promise.all).const tasks = [
() => new Promise(resolve => setTimeout(() => resolve(1), 100)),
() => new Promise(resolve => setTimeout(() => resolve(2), 200)),
() => new Promise(resolve => setTimeout(() => resolve(3), 300)),
() => new Promise(resolve => setTimeout(() => resolve(4), 400)),
];
promiseLimit(tasks, 2).then(results => {
console.log(results); // [1, 2, 3, 4]
});