TopicStatistics.methods.createTopicStatistics = function(callback)
{
// do stuff
Topic.find({} , function (err, resultList)
{
if(err)
{
// do stuff
if(typeof callback === "function")
callback(err); // callback undefined
}
else
{
// do stuff
if(typeof callback === "function")
callback(null); // callback undefined
}
});
};
以上是我要执行的代码。问题是:
由于mongoose主题是异步的,我的函数在mongoose.find完成其正常工作之前完成,并且因此回调变量被清除并且它变得未定义。
我正在寻找的是一种将回调函数传播到mongoose.find函数的方法。像这样:
Topic.find({} , function (err, resultList, mycallback);
这将使我能够在我的mongoose blob中使用它,并且能够在mongoose blob内的操作结束时调用它。
答案 0 :(得分:3)
我认为您需要在主题范围内定义的另一个回调。
Topic.find({} , function (err, resultList, callback)
{
"回调"变量你在Topic.find()内部使用回到TopicStatistics.createTopicStatistics()上的一个变量。所以当你输入
Topic.find({} , function (err, resultList, mycallback);
" mycallback"由于JavaScript没有检查参数计数,因此消失了。