[英]Node js Mongodb collection.find() query result outside scope
我在queryfunctin之外希望collection.find()查询结果
var fol;
Folder
.find({'parentid':id,'stats.archive':'0'})
.lean()
.exec(function(err, f_folder) {
if(!err) {
fol = f_folder;
}
});
console.log(fol); // I want query result here
请给我解决方案,为什么查询不会在函数外部返回结果
在传递给exec()
的回调之外调用的console.log()
将在exec()
函数返回之前exec()
。
正如@VsevolodGoloviznin所说,您需要做的是在回调内部调用console.log()
,例如:
Folder
.find({'parentid':id,'stats.archive':'0'})
.lean()
.exec(function(err, f_folder) {
if(!err) {
fol = f_folder;
console.log(fol);
}
});
这将确保您的fol
var不会被undefined
。
您还可以做的是将逻辑包装在函数内部:
function findFolder(callback) {
Folder
.find({'parentid':id,'stats.archive':'0'})
.lean()
.exec(function(err, f_folder) {
if(!err) {
fol = f_folder;
callback(fol);
}
});
}
function logResult(result) {
console.log(result);
}
findFolder(logResult);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.