Ajax并发请求控制
前言
https://github.com/yuanhaovvv/wechat-article
题目:
Ajax并发请求控制,有100个请求,最大并发数为5,每一条请求成功后,继续请求,直到请求完所有,先不考虑失败的场景!
思路:
看到异步,首先想到Promise.then 完成后继续调用,继续调用,嗯,递归跑不掉了,那如何知道请求了多少条呢?还需要个成功的计时器,ok,开搞
function multiRequest(urls, maxNum = 5) {let len = urls.length,// 成功条数completeCount = 0,// 成功结果result = [];// 先发送5条while(complete < maxnum) {next()}function next() {// 关键 完成数let count = complateCount++request(urls[count]).then(resolve => {if (completeCount < len) {result[count] = resolve// 每次成功继续调用next()}}).catch(reject => {// 错误情况})}}
demo在仓库中,大家有兴趣可以看下,也可施舍个star~~
https://github.com/yuanhaovvv/wechat-article
如果你觉得我写的有用,麻烦大家给个关注和赞,定期写源码相关的东西,提升自己,帮助大家。
“ 努力、加油! ”
