My goal is to execute some javascript functions sequentially, where results from one functions often (but not always) used as arguments of another.
var async = require('async');
var commonFunction1 = function(arg1, arg2, callback) { // callback(err, res1, res2)
callback(null, arg1 + arg2, 11);
}
var commonFunction2 = function(arg3, arg4, callback) { // callbackb(err, res3, res4)
callback(null, arg3 + arg4, 90);
}
var argument1 = 1,
argument2 = 2,
result1,
result2,
result3,
result4;
async.series({
1: function(cb) {
commonFunction1(argument1, argument2, function(err, res1, res2) {
result1 = res1;
result2 = res2;
cb(err);
});
},
2: function(cb) {
commonFunction2(result1, result2, function(err, res3, res4) {
result3 = res3;
result4 = res4;
cb(err);
});
},
}, function(err, results) {
console.log(err, result1, result2, result3, result4);
});
As you see statements like result1 = res1 is a forced syntax sugar.
Is there a better way to link local variables and callback function arguments?
P.S. Closures are not my way, because I plan to move commonFunction1 and commonFunction2 to another module.