繁体   English   中英

将查询结果保存到全局变量

[英]save query result to global variable

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

 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) }) }) 

您可以更改代码以使用Promise,或者只是传递一个回调以返回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
})

只需将结果分配给全局声明的变量即可。

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) {
        global.result = result;
        console.log(global.result)
      })
  })

使用module.exports

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, res) {
    result = res;
    console.log(result);
  });
});

module.exports = result;

在全局范围内将结果传递给函数和设置值。

var globalScope = null;
Dinner1300.count().exec(function (err, count) {
    const random = Math.floor(Math.random() * count)
    Dinner1300.findOne().skip(random).exec(
        function (err, result) {
            setValue(result)
        })
})
function setValue(result) {
    globalScope = result;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM