如果是最大并发执行数是2的话,答案应该是1,3,2吧。我给下我的答案

function f1(cb) {
  setTimeout(function() {
    console.log('1');
    cb();
  }, 300);
}
function f2(cb) {
  setTimeout(function() {
    console.log('2');
    cb();
  }, 500);
}
function f3(cb) {
  setTimeout(function() {
    console.log('3');
    cb();
  }, 100);
}
function queue(list, count) {
  function request() {
    if (list.length) {
      list.shift()(request);
    }
  }
  let i = 0;
  while (list.length > 0 && i < count) {
    list.shift()(request);
    i++;
  }
}
queue([f1, f2, f3], 2);