第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Axios:如何一個接一個地運(yùn)行多個請求?

Axios:如何一個接一個地運(yùn)行多個請求?

冉冉說 2022-10-21 10:14:49
我有一個非常大的 ID 數(shù)組(數(shù)千個 ID)。我想遍歷這個數(shù)組,并為每個值,向 API 發(fā)出請求,如下所示:[12, 32, 657, 1, 67, ...].forEach((id) => {    axios.get(`myapi.com/user/${id}`).then(({ data }) => {        console.log(data.name);    });});但是,我有很多請求要發(fā)出,我無法使它們異步,因?yàn)槲业挠嬎銠C(jī)有限制……是否可以等待每個請求完成后再發(fā)出下一個請求?
查看完整描述

3 回答

?
慕容708150

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超4個贊

而不是使用forEachin id 嘗試Promise.all

const ids = [12, 32, 657, 1, 67];

const promises = ids.map((id) => axios.get(`myapi.com/user/${id}`));


Promise.all([...promises]).then(function (values) {

  console.log(values);

});

假設(shè)我們希望許多 Promise 并行執(zhí)行并等待它們都準(zhǔn)備好。


例如,并行下載多個 URL 并在完成后處理內(nèi)容。

來自https://javascript.info/promise-api


查看完整回答
反對 回復(fù) 2022-10-21
?
瀟瀟雨雨

TA貢獻(xiàn)1833條經(jīng)驗(yàn) 獲得超4個贊

首先,很明顯你必須重新設(shè)計你的 api。


但是,您可以嘗試:



Promise.all([12, 32, 657, 1, 67, ...].map((id) => {

    return axios.get(`myapi.com/user/${id}`).then(({ data }) => {

        console.log(data.name);

    });

})).then(_=>console.log('done'));


或查看p-queue,它將幫助您管理承諾隊(duì)列。



查看完整回答
反對 回復(fù) 2022-10-21
?
慕容森

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個贊

假設(shè)您允許n在任何給定時間發(fā)送最大請求。為了這個例子,我假設(shè)它是 10:


var n = 10;

我們還存儲當(dāng)前索引:


var index = 0;

讓我們實(shí)現(xiàn)一個函數(shù)來處理請求:


function req() {

    axios.get(`myapi.com/user/${input[index]}`).then(({ data }) => {

        console.log(data.name);

        if (index + 1 < input.length) {

            index++;

            req();

        }

    });    

}

然后,讓我們發(fā)送第一個n請求:


while (index < n) {req(); index++}

是的,index是全局的,但為了便于閱讀,它是全局的。


查看完整回答
反對 回復(fù) 2022-10-21
  • 3 回答
  • 0 關(guān)注
  • 268 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號