不止一次没看到下面的减少功能MongoDB的映射缩减使用示例:Map/Reduce example ...这是正确的吗?
function reduce(key, values) {
var result = {count:0};
values.forEach(function(value) {
result.count += value.count;
});
return result;
}
但是,这令我很奇怪。迭代使用.forEach()方法完成,该方法使用回调函数进行计数。但是,我们返回结果;马上。
不能像的情况下,有时我们返回结果变量完成回调之前通过迭代值?
我认为回调的目的是让我们把它委托给一个(可能)不同的线程,而主控制流程继续正常进行。
回调可以在许多不同的方式使用。其中一些是异步的。许多人不是。 'forEach'不是异步的。但请注意,即使在处理异步行为时,处理多个线程也相当罕见。在Javascript环境中有越来越多的可能性,但这种语言传统上是单线程的。 –
如果回调函数让你感到困惑,请尝试用'for'-loop简单替换'forEach'。 – dfsq
感谢您的意见!这并不是说它让我感到困惑,因为我没有看到同步回调的重点。我认为重点是具有更多功能的编程风格和闭包功能。 –