node.js - 如何在 Node 的异步eachSeries中正确获取结果数组?

标签 node.js mongodb node-async

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

这是我的代码:

    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 在那里输出实际数字,我做错了什么?

最佳答案

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

关于node.js - 如何在 Node 的异步eachSeries中正确获取结果数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30684606/

相关文章:

javascript - 查询不能直接在具有打开事务的 session 上运行;从事务内运行或使用不同的 session

node.js - 如何使用monk连接多个MongoDB数据库?

javascript - Node.js 执行顺序查询

mongodb - 在 mongoid/mongodb 中分组

javascript - Node.JS async.parallel 不会等到所有任务都完成

node.js - async.parallel 适用于大量函数

javascript - 这两个 promise 语法之间的区别

java - MongoDB EC2 基准配置

javascript - Mongodb shell JavaScript 读取不同的表

node.js - 处理 socket.io 异步获取/设置调用