欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JS循環(huán)發(fā)送請求時(shí)控制請求并發(fā)數(shù)實(shí)例

 更新時(shí)間:2023年12月19日 10:14:24   作者:Victory  
這篇文章主要介紹了JS循環(huán)發(fā)送請求時(shí)控制請求并發(fā)數(shù)實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

準(zhǔn)備數(shù)據(jù),調(diào)用方法

let data = [{ name: 1 }, { name: 2 }, { name: 3 }, { name: 4 }];
  LimitFunc(data, service, 2);

屬性注釋

//data:請求所需參數(shù),service:請求回調(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請求

function service(item) {
  return new Promise((resolve) => {
    // axios成功
    axios('url', item).then(() => {
      resolve();
    });
  });
}

以上就是JS循環(huán)發(fā)送請求時(shí)控制請求并發(fā)數(shù)實(shí)例的詳細(xì)內(nèi)容,更多關(guān)于JS循環(huán)發(fā)送請求控制并發(fā)數(shù)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 深入理解js A*尋路算法原理與具體實(shí)現(xiàn)過程

    深入理解js A*尋路算法原理與具體實(shí)現(xiàn)過程

    這篇文章主要介紹了js A*尋路算法原理與具體實(shí)現(xiàn)過程,結(jié)合實(shí)例形式詳細(xì)分析了A*尋路算法的具體概念、原理、實(shí)現(xiàn)方法與相關(guān)操作技巧,需要的朋友可以參考下
    2018-12-12
  • require簡單實(shí)現(xiàn)單頁應(yīng)用程序(SPA)

    require簡單實(shí)現(xiàn)單頁應(yīng)用程序(SPA)

    下面小編就為大家?guī)硪黄猺equire簡單實(shí)現(xiàn)單頁應(yīng)用程序(SPA)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-07-07
  • 函數(shù)式JavaScript編程指南

    函數(shù)式JavaScript編程指南

    函數(shù)式JavaScript編程指南...
    2007-02-02
  • 淺析JavaScript中變量提升的原理與使用

    淺析JavaScript中變量提升的原理與使用

    前端的小伙伴大概都知道,js中的var變量存在變量提升,在es6以后隨著let變量的出現(xiàn),變量提升問題得以解決,那么變量提升的原理是什么,es6又是怎么解決變量提升問題的,下面我們來共同探尋答案
    2023-05-05
  • js正則表達(dá)式驗(yàn)證郵件地址

    js正則表達(dá)式驗(yàn)證郵件地址

    這篇文章主要介紹了js正則表達(dá)式驗(yàn)證郵件地址,利用javaScript語言實(shí)現(xiàn)一下電子郵件地址驗(yàn)證程序,使用的是JavaScript語言的正則表達(dá)式庫,感興趣的小伙伴們可以參考一下
    2015-11-11
  • Javascript中arguments用法實(shí)例分析

    Javascript中arguments用法實(shí)例分析

    這篇文章主要介紹了Javascript中arguments用法,實(shí)例分析了javascript利用arguments實(shí)現(xiàn)模擬重載功能,需要的朋友可以參考下
    2015-06-06
  • javascript表單驗(yàn)證和Window詳解

    javascript表單驗(yàn)證和Window詳解

    這篇文章主要詳細(xì)介紹了javascript表單驗(yàn)證和Window,并附上了示例代碼,非常使用,對于我們更好的了解表單驗(yàn)證和Window很有幫助,這里推薦給大家
    2014-12-12
  • 詳解JS鼠標(biāo)事件中clientX/screenX/offsetX/pageX屬性的區(qū)別

    詳解JS鼠標(biāo)事件中clientX/screenX/offsetX/pageX屬性的區(qū)別

    在熟悉業(yè)務(wù)中播放器功能的時(shí)候,發(fā)現(xiàn)時(shí)間軸上綁定了點(diǎn)擊和拖動(dòng)事件,頻繁遇到了類似pageX之類的事件屬性,所以本文就來和大家詳細(xì)聊聊clientX/screenX/offsetX/pageX等屬性的區(qū)別吧
    2024-03-03
  • JavaScript實(shí)現(xiàn)精美個(gè)性導(dǎo)航欄筋斗云效果

    JavaScript實(shí)現(xiàn)精美個(gè)性導(dǎo)航欄筋斗云效果

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)精美個(gè)性導(dǎo)航欄筋斗云效果,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-10-10
  • Es6 Generator函數(shù)詳細(xì)解析

    Es6 Generator函數(shù)詳細(xì)解析

    Generator 函數(shù)是 ES6 提供的一種異步編程解決方案,語法行為與傳統(tǒng)函數(shù)完全不同。這篇文章給大家介紹Es6 Generator函數(shù)的相關(guān)知識,感興趣的朋友一起看看吧
    2018-02-02

最新評論