JS 高并发问题(很有意思)
前沿
数据请求页面一次性并发请求200个300个,
那个可以依次并发10个
代码这样: urls 就是你的请求地址数组 , maxNum 是你的最大一次请求数量
const getManyRequest = async (urls, maxNum) => { if (urls.length == 0) return Promise.resove([]); return new Promise(function (resolve) { let index = 0; // 指向下一次的请url const result = []; let count = 0; // 当前完成的请求数量 async function _request() { const i = index; const url = urls[index]; index++; try { // const resp = await fetch(url); const resp = await getlnglat(url.countryCode); let newPusg = { geometry: { type: 'Point', coordinates: [resp.location.lng, resp.location.lat], }, properties: { orderCount: url.orderCount, text: resp.admin_info.country_code + '\n' + resp.location.lng + ',' + resp.location.lat, }, color: '#0ff', // #0ff #f00 #ff0 size: 12, url, }; result[i] = newPusg; } catch (err) { result[i] = err; } finally { count++; if (count === urls.length) { resolve(result); } if (index < urls.length) { _request(); } } } for (let i = 0; i < Math.min(urls.length, maxNum); i++) { _request(); } }); };
在写的时候还是用promise 去调用
getManyRequest(worldList.value, 3).then(resp => { console.log(resp); worldList.value = resp; });
哈哈哈哈哈 还是很有趣的
分类:
Javascript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】