[js] 第635天 实现一个批量请求函数 multiRequest(urls, maxNum)
Opened this issue · 2 comments
haizhilin2013 commented
PT-github commented
function multiRequest(urls, maxNum) {
let list = urls.map((url, index) => {
if (index < maxNum) {
return function () {
return axios.get(url)
}
}
return null
}).filter(item => !!item)
return Promise.all(list).then(result => {
console.log(result)
})
}
Jack-rainbow commented
function multirquest(arr, nums) {
if (!arr.length) {
return
}
let result = []
Promise.all({ length: nums }).map(() => {
return new Promise(() => {
function runTask() {
if (!arr.length) {
resolve('throw Error')
return
}
const _task = arr.shift()
_task().then((v) => {
result.push(v)
// 继续链式执行promise
runTask()
})
}
runTask()
})
})
}
limitPromise(
[
{
size: 1000,
page: 1,
},
{
size: 1000,
page: 2,
},
{
size: 1000,
page: 3,
},
],
1,
(eee) => {
console.log(eee)
}
)