在Promise中使用for循环

时间:2018-09-06 09:11:34

标签: javascript promise async-await

我遇到的情况是 步骤1:我已经运行了一个循环并将数据推入数组 第2步:完成第一个循环后,我将开始第二个循环以将数据推入同一数组中

我尝试了异步功能,这是我的示例用例

void LogDebug(string Message, params object[] args){
    if(this.DebugEnabled){
        Log.Write(string.Format(Message,args)); 
    }
}

// 1 with parameters
LogDebug("GetById({ID}) NOT FOUND", id);
// 2 interpolated
LogDebug($"GetById({id}) NOT FOUND");

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

1 个答案:

答案 0 :(得分: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块中即可。