首页 > 解决方案 > 将查询结果保存到全局变量

问题描述

如何从嵌套查询中返回值?我想将结果保存到全局变量。有人可以帮助我吗?

let result = null;

const returnMeal = () => {
  Dinner1300.count().exec(function (err, count) {

    const random = Math.floor(Math.random() * count)
  
    Dinner1300.findOne().skip(random).exec(
      function (err, result) {
        console.log(result)
      })
  })

标签: javascriptnode.jsmongodbexpressmongoose

解决方案


要么你改变你的代码以使用承诺,要么你只是将一个回调传递给 returnMeal 并在那里处理响应

const returnMeal = clb => {
  Dinner1300.count().exec(function (err, count) {

    const random = Math.floor(Math.random() * count)

    Dinner1300.findOne().skip(random).exec(
      function (err, result) {
        clb(result)
      })
  })
}

returnMeal(result => {
  console.log(result);
  // move all your logic to handle the result here
})

推荐阅读