我想知道是否可以进行一系列计算并使用async.each方法获取返回值。一个非常简单的例子就是计算数组中所有元素的总和。
function Calculator() {
}
Calculator.prototype.sum = function(elements, callback) {
var total = 0;
async.each(elements, function(element, callback) {
total += element;
callback();
}, function(err) {
if (err) throw err;
//How can I get total as a returned value of sum?
});
}
由于
答案 0 :(得分:2)
是的,应该可以:您可以使用async.reduce
。 (虽然这需要对代码进行一些更改,但必须通过回调传递当前值。
文档示例:
async.reduce([1,2,3], 0, function(memo, item, callback){
// pointless async:
process.nextTick(function(){
callback(null, memo + item)
});
}, function(err, result){
// result is now equal to the last value of memo, which is 6
});