0

我正在尝试使用 asynceachSeries来编写每个类别的报告计数。类别和报告并存储在单独的集合中,然后我首先获取可用类别并对它们执行计数搜索。

这是我的代码:

    Category.find({},{_id:0, name: 1}, function (err, foundCategories) {
        async.eachSeries(foundCategories,
            function (item,callback) {
                Report.count({category: item.name}, function (err,count) {
                    var name = item.name;
                    console.log(count);
                   return callback(null,{name: count});
                });
            }
        ,function (err, results) {

            if (err)
                response.send(err);
            response.send(JSON.stringify(results));
        });
    });

问题是我什么也没收到,console.log那里输出实际数字,我做错了什么?

4

2 回答 2

3

的 APIeachSeries不向最终回调提供任何结果 - 只有在失败情况下的错误。在成功案例中,它只是一个纯控制流“eachSeries is done”指示符,但不提供从工作函数传递值的机制。mapSeries确实提供了您需要的功能。

于 2015-06-06T16:40:18.740 回答
1

与彼得的回答类似, async.waterfall 为您提供函数的瀑布式执行,同时将返回值传递给瀑布链中的下一个异步函数。

于 2015-06-07T15:44:42.983 回答