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

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

如何等到 Javascript forEach 循環(huán)完成后再進行下一個 sep

如何等到 Javascript forEach 循環(huán)完成后再進行下一個 sep

慕慕森 2021-12-02 16:17:23
在調(diào)用另一個函數(shù)來重新加載應(yīng)由 axios 調(diào)用更新的數(shù)據(jù)之前,我需要等待由 forEach 循環(huán)調(diào)用的函數(shù)中的所有 axios 調(diào)用運行。function1() {    let arr = [1, 2, 3, 4, 5];    arr.forEach((num) => {        function2(num);    });    //Wait until each call in the forEach loop above    //is done before running the function3() function.    function3();}function2(number) {    axios.post('/internal-url/action/' + number)        .then((response) => {            return response;        });}function3() {    console.log('reloading data...');    /* DB call to reload data */    console.log('data is reloaded');}這里的問題是數(shù)據(jù)在 axios 調(diào)用完成之前重新加載。我知道 axios 調(diào)用有效,因為我可以看到它們在數(shù)據(jù)庫中更新,但我需要function1()等待所有 axios 調(diào)用function2()完成,然后才能在function3().我曾嘗試同時創(chuàng)建function1()和function2() async/await運行,然后單獨運行,但這不起作用。我將如何具體執(zhí)行此操作?
查看完整描述

3 回答

?
森林海

TA貢獻2011條經(jīng)驗 獲得超2個贊

創(chuàng)建一個承諾數(shù)組,然后Promise.all使用async/await.


// async/await - create an array of promises

// from function2, then await until Promise.all has

// fully resolved/rejected

async function1() {

  let arr = [1, 2, 3, 4, 5];

  const promises = arr.map((num) => function2(num));

  await Promise.all(promises);

  function3();

}


function2(number) {

  return axios.post('/internal-url/action/' + number);

}


function3() {

  console.log('reloading data...');

  /* DB call to reload data */

  console.log('data is reloaded');

}


查看完整回答
反對 回復(fù) 2021-12-02
?
寶慕林4294392

TA貢獻2021條經(jīng)驗 獲得超8個贊

最好的解決方案是使用,Promise.all以便所有請求都可以并行進行。這看起來像這樣。


function1() {

    let arr = [1, 2, 3, 4, 5];

    Promise.all(arr.map((num) => function2(num))).then(() => {

        function3();

    });

}

這將等到所有function2返回的 Promise都已解決,然后再調(diào)用function3.


查看完整回答
反對 回復(fù) 2021-12-02
?
哈士奇WWW

TA貢獻1799條經(jīng)驗 獲得超6個贊

也許是這樣的:


const arr = [1, 2, 3, 4, 5];

let index = 0;

const answers = [];

(function loop() {

    const value = arr[index];

    function2(value).then(res => {

        answers.push(res);

    });

    index++;

    if (index < arr.length) {

        loop();

    }

})();

function3();

console.log(answers);


查看完整回答
反對 回復(fù) 2021-12-02
  • 3 回答
  • 0 關(guān)注
  • 1530 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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