在承诺中使用for循环

问题描述 投票:0回答:1

我有一个场景,其中第1步:我已经运行了一个循环并将数据推送到数组步骤2:一旦我的第一个循环完成,我将开始第二个循环将数据推送到同一个数组

我试过异步函数,这是我的用例示例

  var arr =[]; //declared globally
    async function myloop(){

    for(i=0;i<10;i++){
    arr.push(i);
    }

    }

   // Here is what I wanna do now
    myloop().then(function(){
    for(i=10;i<20;i++){
    arr.push(i)
    }
    })

我必须等到我的函数推送循环中的所有数据,循环完成后我需要回到这里进行第二次运行

javascript promise async-await
1个回答
0
投票

上下文有点不清楚,但我假设你从两个集合中接收两个数组,它们在Promise中返回数组。

我们假设你有这两个功能。

function dataBaseCallX() {
    // returns a Promise<Array>
}

function dataBaseCallY() {
    // returns a Promise<Array>
}

你想把结果合二为好吗?然后在这里您可以使用async-await功能。我想这就是你想要的。

const resultA = await dataBaseCallX();  // An Array
const resultB = await dataBaseCallY();  // An Array

let combinedResults = resultA.concat(resultB);

如果出现错误,您可以将其简单地包装到try catch块中。

© www.soinside.com 2019 - 2024. All rights reserved.