javascript 在map内部使用push仍然返回null数组

rqdpfwrv  于 2023-05-12  发布在  Java
关注(0)|答案(1)|浏览(171)

我得到了一个进程列表,我试图通过它们进行Map,并将某些属性添加到一个对象中,然后将其推入一个数组中。当我控制台注销它的罚款,但在gql客户端/前端im得到空结果。

let results = []
                    await list.forEach((process) => {
                        results.push({
                            name: process.name,
                            created_at: process.pm2_env.created_at,
                            pm_uptime: process.pm2_env.pm_uptime,
                            status: process.pm2_env.status,
                            memory: process.monit.memory,
                            cpu: process.monit.cpu
                        })
                    })

                    const contents = await Promise.all(results);
                    console.log(contents);

我也试过使用mapforEachfor/of
我不知道我做错了什么?任何建议赞赏。

cyej8jka

cyej8jka1#

感谢您的回复。我有一些奇怪的行为与这一个,但最终解决了它。
我最终把它扔到一个返回promise的函数中。

const getPm2List = () => {
  return new Promise((resolve, reject) => {
      pm2.list(async (err, list) => {
          if (err) throw new GraphQLError('Unable to connect to PM2')

          resolve(list)
      })
  })
}

const processList = await getPm2List()

processList.forEach((process) => {
  results.push({
      name: process.name,
      pm_uptime: process.pm2_env.pm_uptime,
      status: process.pm2_env.status,
      memory: process.monit.memory,
      cpu: process.monit.cpu
  })
})

return results

相关问题