我不止一次看到以下reduce函数作为mongodb的mapreduce用法示例:
function reduce(key, values) {
var result = {count:0};
values.forEach(function(value) {
result.count += value.count;
});
return result;
}
但这让我觉得很奇怪。迭代是使用 .forEach() 方法完成的,该方法使用回调函数进行计数。但是,我们返回结果;马上。
有时我们会在回调完成迭代值之前返回结果变量吗?
我认为回调的目的是我们将它委托给(可能)不同的线程,而主控制流正常继续。