Javascript node.js:Async.parallel,回调不是函数
所以我想得到每个子论坛的浏览者数量。我想通过使用async.parallel来实现这一点,然后在最后接收结果。问题是我想用不同的参数调用同一个函数4次(每个子窗体一次)。我该怎么做?下面您看到的是我是如何尝试的,但它给了我一个错误,即“回调不是函数”。有人知道如何正确地做到这一点吗 Node.js代码Javascript node.js:Async.parallel,回调不是函数,javascript,node.js,asynchronous,Javascript,Node.js,Asynchronous,所以我想得到每个子论坛的浏览者数量。我想通过使用async.parallel来实现这一点,然后在最后接收结果。问题是我想用不同的参数调用同一个函数4次(每个子窗体一次)。我该怎么做?下面您看到的是我是如何尝试的,但它给了我一个错误,即“回调不是函数”。有人知道如何正确地做到这一点吗 Node.js代码 router.get('/getSubViews', function(req, res) { async.parallel([ getViewers('quests'), ge
router.get('/getSubViews', function(req, res) {
async.parallel([
getViewers('quests'),
getViewers('tips & tricks'),
getViewers('general'),
getViewers('cities')
], function(err, result) {
if (err) {
return res.status(500).json({
message: "Something went wrong",
err: err
});
}
res.status(200).json({
message: "Successfully retrieved the section",
obj: 'whatever'
});
});
function getViewers(subForum, callback){
SubViewCount.findOne({'section': subForum}, function(err, doc){
callback(null, doc.views);
})
}
您正在使用一个参数调用
getViewers()
,这意味着在内部,callback
不是函数。尝试用返回SubViewCount.findOne({'section':subform})替换函数内容代码>我还将研究蓝鸟的承诺。all(){“后端返回代码::500,“主体是:”↵↵↵它导致了一个错误。async.parallel
似乎是处理承诺的早期尝试。虽然您可能会以某种方式让它工作,但我的建议是利用.findOne()
返回承诺这一事实。使用这个:好的,我来看看