我正在使用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
确实包含它收集的全部数据吗?