[英]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.