SOURCE


function load(index){
  return new Promise((res, rej) => {
    setTimeout(() => {
      console.log(index);
      res();
    }, 3000)
  })
}
function promiseLimit(arr, limit, fn){
  let index = 0;
  function init(){
    index++;
    if(index <= arr.length){
      fn(index).then(() => {
        init()
      })
    }
  }
  for(let i = 0; i < limit; i++){
    init()
  }
}
promiseLimit([1,2,3,4,5,6,7,8,9], 3, load)
console 命令行工具 X clear

                    
>
console