不止一次沒看到下面的減少功能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
感謝您的意見!這並不是說它讓我感到困惑,因爲我沒有看到同步回調的重點。我認爲重點是具有更多功能的編程風格和閉包功能。 –