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