0

我不止一次看到以下reduce函数作为mongodb的mapreduce用法示例:

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 回答