0

mongodb の mapreduce の使用例として、次の reduce 関数を何度も見たことがあります。

function reduce(key, values) {
    var result = {count:0};
    values.forEach(function(value) {
        result.count += value.count;
    });
    return result;
}

しかし、これは非常に奇妙に思えます。繰り返しは、コールバック関数を使用してカウントを行う .forEach() メソッドで行われます。ただし、結果を返します。すぐに。

コールバックが値の反復処理を完了する前に、結果変数を返すことがありますか?

コールバックの目的は、メインの制御フローが正常に継続している間に、コールバックを (おそらく) 別のスレッドに委譲することだと思いました。

4

1 に答える 1

3

forEach非同期ではありません。
ステートメントは、return実行後にのみ実行さforEachれます。

于 2012-12-05T13:29:12.743 に答える