Yes it should be possible: You could use async.reduce
. (Although this would required some changes to your code, the current value must be passed through with the callback.
Example from the docs:
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
});