NodeJS异步/等待和forEach

时间:2019-03-29 15:31:17

标签: javascript node.js foreach async-await

我正在使用NodeJS版本v10.15.3,并且我有类似以下的代码:

async getItems(): Promise<Array<any>> {
    let retArray = [];
    await some.list.forEach(async function (someObj) {
        let item = new Item();
        await item.initialize(someObj);
        await retArray.push(item);
    }
    console.log("retArray="+JSON.stringify(retArray));
    retrn retArray;
}


async mainFunction() {
    let items = await getItems()
    console.log("items="+JSON.stringify(items));
}

当我调用mainFunction()并记录其结果(items)时,它确实包含期望值。但是很奇怪的是,即使在getItems()上有await上的forEach(在retArray上添加了retArray)上,当我打印{{1}在函数返回之前的forEach之后的}中,它没有完整的值。我await将商品initialize push,甚至等待将retArray forEach放入retArray

该日志显示空列表只是没有意义

  

console.log(“ retArray =” + JSON.stringify(retArray));

但是此日志显示了我期望的完整列表。

  

console.log(“ items =” + JSON.stringify(items));

如何做到这一点,以便在retArray之后引用如下的cloudbuild.yaml

  

console.log(“ retArray =” + JSON.stringify(retArray));

gcloud app deploy确实包含它收集的全部数据吗?

0 个答案:

没有答案