# 实现请求并发

function startLimitPool (tasks, max, callback) {
  const result = [];
  Promise.all(Array.from({ length: max }).map(() => {
    return new Promise(resolve => {
      function runTask () {
        if (tasks.length <= 0) {
          resolve();
          return;
        }
        const task = tasks.shift();
        task().then((res) => {
          result.push(res);
          runTask();
        })
      }
      runTask()
    })
  })).then(() => callback(result))
}
Last Updated: 6/1/2026, 3:27:51 PM