Promise.all(), Promise.race(), and Promise.any()

What advanced promise pattern is implemented?
function concurrent(tasks, limit) {
  const results = new Array(tasks.length);
  let running = 0;
  let index = 0;

  return new Promise((resolve, reject) => {
    function next() {
      if (index === tasks.length && running === 0) {
        resolve(results);
        return;
      }

      while (running < limit && index < tasks.length) {
        const i = index++;
        running++;
        Promise.resolve(tasks[i]())
          .then(result => {
            results[i] = result;
            running--;
            next();
          })
          .catch(reject);
      }
    }
    next();
  });
}
Next Question (14/20)