# 实现请求并发
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))
}
← 实现 jsonp 实现 Promise →