我想:
调用 API 资源
取回记录数组 - [arr]
forEach over [arr] 并执行某些功能 - 对 API 的另一个 aysnc 调用
对于每次迭代,创建一个对象,其中包含原始 API 调用的元素以及每个项目的后续调用
将生成的每个对象实例保存到 Mongo
在所有必需的保存操作结束时,从 Mongo 调用完整的集合
res.render 该集合
我的代码如下所示:
//First API call to get [arr]
const results = await getlist();
//Iterate over [arr] and perform a request on each item
_.forEach(results, async function (result) {
//Seconday request for each item in [arr]
const record = await item(result.id).fetch();
//Combined doc from original result and secondary call for record
let doc = new DocModel({
item1: result.id,
item2: record.something,
});
//Save doc
const saveDoc = doc.save();
});
//Call for all docs
const allItems = await DocModel.find();
//Render all docs
res.render(`aView`, {
recordings: allItems,
});
我面临的问题是渲染在 forEach 完成/填充 Mongo 之前执行。
为了尝试解决这个问题,我尝试将 forEach 块包装在 Promise 中,然后 .then res.render ,但这似乎没有效果。
确保所有函数调用在渲染发生之前完成的解决方案是什么?
湖上湖
慕的地8271018
肥皂起泡泡
相关分类