Javascript node.js:Async.parallel,回调不是函数

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

所以我想得到每个子论坛的浏览者数量。我想通过使用async.parallel来实现这一点,然后在最后接收结果。问题是我想用不同的参数调用同一个函数4次(每个子窗体一次)。我该怎么做?下面您看到的是我是如何尝试的,但它给了我一个错误,即“回调不是函数”。有人知道如何正确地做到这一点吗

Node.js代码

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()
返回承诺这一事实。使用这个:好的,我来看看