异步循环不返回值

Cka*_*ppo -1 node.js async-await

我有一个异步循环来检查数组,如果找到特定值,它会循环另一个数组以匹配找到的值。

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

mergedObject = [];
 array1.forEach(async (item) => {
  if (item.id == 'XXX') {
   const dbInfo = await readDB();
Run Code Online (Sandbox Code Playgroud)

数据库信息,我想推入一个数组并构建一个 json 对象。

      dbInfo.forEach(async (itemDB) => {
    object.push({
      id,
      name,
      ..
      ..
Run Code Online (Sandbox Code Playgroud)

在循环结束时,我将新对象与“旧”对象合并

  mergedObject = _.map(oldObject, (objs) => {
    _.assign(objs, _.find(object, {
      id: objs.id,
    }));
  });
Run Code Online (Sandbox Code Playgroud)

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

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

小智 5

Async/await 不适用于 forEach。使用 for in、for of 或传统的 for 循环。请参阅使用 async/await 和 forEach 循环