Node.js 如何仅在执行函数后发送结果?

Node.js 如何仅在执行函数后发送结果?,node.js,mongodb,express,Node.js,Mongodb,Express,json()我想在post之后发送函数的结果,但我认为res.json()在我得到函数的结果之前执行,每次结果都是未定义的 Game.find({ $or: [{ 'homeTeamName': awayTeamName }, { 'awayTeamName': awayTeamName }] }) .then( function (games) { let gamesGuest = games

json()我想在post之后发送函数的结果,但我认为res.json()在我得到函数的结果之前执行,每次结果都是未定义的

Game.find({ $or: [{ 'homeTeamName': awayTeamName }, { 'awayTeamName': awayTeamName }] })
          .then(
            function (games) {
              let gamesGuest = games
              let result = testFunc.createCoef(gamesHome, gamesGuest, homeTeamName, awayTeamName)
              res.json(result)
            }
          )
          .catch(err =>
            res.status(404).json('Away no games')
          )
      }
    )

您可以尝试使用异步等待

Game.find({ $or: [{ 'homeTeamName': awayTeamName }, { 'awayTeamName': awayTeamName }] })
      .then(
        async function (games) {
          let gamesGuest = games
          let result = await testFunc.createCoef(gamesHome, gamesGuest, homeTeamName, awayTeamName)
          res.json(result)
        }
      )
      .catch(err =>
        res.status(404).json('Away no games')
      )
  }
)

我不是Nodejs方面的专家,我对它还是新手,但我认为对于异步执行,可以使用wait,因此它会哀求函数完成,然后移动到下一行

因此,尝试在函数之前添加“wait”

Game.find({$or:[{'homeTeamName':awayTeamName},{'awayTeamName':awayTeamName}]})
.那么(
异步函数(游戏){
让gamesGuest=游戏
让result=wait testFunc.createCoef(gamesHome、gamesGuest、homeTeamName、awayTeamName)
res.json(结果)
}
)
.catch(错误=>
res.status(404.json)(“客场无比赛”)
)
}

)
添加对
testFunc.createCoef
的承诺……同时在问题中添加
testFunc.createCoef
的代码。