Node.js 异步循环don';t返回值

Node.js 异步循环don';t返回值,node.js,async-await,Node.js,Async Await,我有一个检查数组的异步循环,如果找到一个特定的值,它将循环另一个数组以匹配所创建的值 所以我的第一个实现。我打开一个异步循环并从数据库中获取数据 mergedObject = []; array1.forEach(async (item) => { if (item.id == 'XXX') { const dbInfo = await readDB(); 对于db infos,我想将其放入一个数组并构建一个json对象 dbInfo.forEach(async

我有一个检查数组的异步循环,如果找到一个特定的值,它将循环另一个数组以匹配所创建的值

所以我的第一个实现。我打开一个异步循环并从数据库中获取数据

mergedObject = [];
 array1.forEach(async (item) => {
  if (item.id == 'XXX') {
   const dbInfo = await readDB();
对于db infos,我想将其放入一个数组并构建一个json对象

      dbInfo.forEach(async (itemDB) => {
    object.push({
      id,
      name,
      ..
      ..
在循环结束时,我将新对象与“旧”对象合并

我的问题是,在forEach中,我得到了正确的日志。 但是如果我想在forEach(array1)之外使用mergedObject,我会得到
log:[]

这是我第一次尝试使用async。我以前使用过回调。
如何访问forEach外部的mergedObject?

Async/await在forEach上不起作用。 用于in、for of或传统for循环。
请参阅此

请创建一个您不应该将forEach或其他基于函数的迭代API与async..wait一起使用,除非您知道自己在做什么。类似for..of的循环语句自然支持async..await。有一堆“forEach vs for”的重复问题。可能是重复的
  mergedObject = _.map(oldObject, (objs) => {
    _.assign(objs, _.find(object, {
      id: objs.id,
    }));
  });