сохранить результат запроса в глобальной переменной - PullRequest
0 голосов
/ 15 марта 2019

Как я могу вернуть значение из вложенного запроса?Я хочу сохранить результат в глобальной переменной.Кто-нибудь может мне помочь?

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

Ответы [ 4 ]

1 голос
/ 15 марта 2019

либо вы изменяете свой код для использования обещаний, либо просто передаете обратный вызов в 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
})
0 голосов
/ 15 марта 2019

Передать результат в функцию и установить значение в глобальной области видимости.

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;
}
0 голосов
/ 15 марта 2019

Использовать 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;
0 голосов
/ 15 марта 2019

Просто присвойте результат глобальной объявленной переменной.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...