Node.js 如何在express.js中的函数外部打印结果?
我已经返回了在express.js中获取所有参数文档的函数。我想在find函数之外打印结果。如何完成此操作帮助我解决问题Node.js 如何在express.js中的函数外部打印结果?,node.js,express,Node.js,Express,我已经返回了在express.js中获取所有参数文档的函数。我想在find函数之外打印结果。如何完成此操作帮助我解决问题 exports.show = function(req, res) { var parameterObject = []; var produtObject = []; Parameter.find().exec(function (err, Parameters) { if(err) { return handleError(res, err); } par
exports.show = function(req, res) {
var parameterObject = [];
var produtObject = [];
Parameter.find().exec(function (err, Parameters) {
if(err) { return handleError(res, err); }
parameterObject.push(Parameters);
});
Product.find().exec(function (err, Products) {
if(err) { return handleError(res, err); }
produtObject.push(Products);
});
console.log(parameterObject);
console.log(produtObject);
}
现在我得到的是空的[]对象。您不能在外部访问它,因为
参数.find()
是异步的
但是您可以传递一个回调,该回调传递变量parameterObject
exports.show = function(req, res) {
var parameterObject = [];
function MethodName(callback) {
Parameter.find().exec(function (err, Parameters) {
if(err) { return handleError(res, err); }
parameterObject.push(Parameters);
return callback(parameterObject);
});
}
MethodName(function(parameterObject) {
console.log(parameterObject);
})
}
我的问题是不同的。从不同的角度来说,它并没有什么不同,您传入的
exec()
回调是异步的,您希望使其同步。我建议你研究一下生成器
,承诺
和ES7异步
/等待
@mojo你现在修好了吗?是的,我想解决这个问题@NewbeeDev@mojo不管怎样,你想在外面访问它的目的是什么@NewbeeDev你能帮我查一下吗@NewbeeDev