JS循環(huán)發(fā)送請(qǐng)求時(shí)控制請(qǐng)求并發(fā)數(shù)實(shí)例
準(zhǔn)備數(shù)據(jù),調(diào)用方法
let data = [{ name: 1 }, { name: 2 }, { name: 3 }, { name: 4 }];
LimitFunc(data, service, 2);屬性注釋
//data:請(qǐng)求所需參數(shù),service:請(qǐng)求回調(diào)名稱,LimitNum 并發(fā)數(shù)量
const LimitFunc = async (data, service, LimitNum) => {
const arrList = []; // 所有的promise
const running = []; // 正在執(zhí)行的promise
for (const item of data) {
const p = Promise.resolve(service(item)); // Promise.resolve回調(diào)函數(shù)
arrList.push(p);
if (LimitNum <= data.length) {
// then回調(diào)中,當(dāng)這個(gè)promise狀態(tài)變?yōu)閒ulfilled后,將其從正在執(zhí)行的promise列表running中刪除
const e = p.then(() => running.splice(running.indexOf(e), 1));
running.push(e);
if (running.length >= LimitNum) {
// running的數(shù)量等于限制數(shù)時(shí),Promise.race等待某一個(gè)promise狀態(tài)發(fā)生變更,
// 變更后,執(zhí)行then的回調(diào),將當(dāng)前promise從running中刪除,從下一次for循環(huán)中生成新的promise進(jìn)入running
await Promise.race(running);
}
}
}
return Promise.all(arrList);
};axios請(qǐng)求
function service(item) {
return new Promise((resolve) => {
// axios成功
axios('url', item).then(() => {
resolve();
});
});
}以上就是JS循環(huán)發(fā)送請(qǐng)求時(shí)控制請(qǐng)求并發(fā)數(shù)實(shí)例的詳細(xì)內(nèi)容,更多關(guān)于JS循環(huán)發(fā)送請(qǐng)求控制并發(fā)數(shù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
js實(shí)現(xiàn)Tab選項(xiàng)卡切換效果
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)Tab選項(xiàng)卡切換效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10
Javascript(es2016) import和require用法和區(qū)別詳解
本篇文章主要介紹了Javascript(es2016) import和require用法和區(qū)別詳解,具有一定的參考價(jià)值,有興趣的可以了解下2017-08-08
js實(shí)現(xiàn)select組件的選擇輸入過濾代碼
如何實(shí)現(xiàn)select組件的選擇輸入過濾作用,下面有一段js代碼,很實(shí)用,需要的朋友可以看看2014-10-10
bootstrap-treeview實(shí)現(xiàn)多級(jí)樹形菜單 后臺(tái)JSON格式如何組織?
這篇文章主要介紹了bootstrap-treeview實(shí)現(xiàn)多級(jí)樹形菜單,后臺(tái)JSON格式如何組織,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07
JS前端攻堅(jiān)淺析instanceof實(shí)現(xiàn)原理
這篇文章主要為大家介紹了JS前端攻堅(jiān)淺析instanceof實(shí)現(xiàn)原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
JS實(shí)現(xiàn)json對(duì)象數(shù)組按對(duì)象屬性排序操作示例
這篇文章主要介紹了JS實(shí)現(xiàn)json對(duì)象數(shù)組按對(duì)象屬性排序操作,涉及javascript使用sort方法針對(duì)json數(shù)組的遍歷與排序相關(guān)操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-05-05
javascript遍歷對(duì)象的五種方式實(shí)例代碼
在我們?nèi)粘9ぷ鬟^程中,我們對(duì)于javaScript遍歷對(duì)象、數(shù)組的操作是十分的頻繁的,這篇文章主要給大家介紹了關(guān)于javascript遍歷對(duì)象的五種方式,需要的朋友可以參考下2021-10-10

