0

各カテゴリのレポート数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。そこに実際の数値が出力されます。何が間違っていますか?

4

2 に答える 2

3

の API はeachSeries、最終的なコールバックに結果を提供しません。失敗した場合のエラーのみです。成功の場合、これは純粋な制御フローの「eachSeries が完了した」インジケータにすぎませんが、ワーカー関数から値を渡すメカニズムは提供されません。mapSeriesは必要な機能を提供します。

于 2015-06-06T16:40:18.740 に答える