I need to do the code like following:
function taskFirst(k, v) {
console.log(k, v);
}
function taskSecond(k, v) {
console.log(k, v);
}
function run() {
You could do something like this:
function taskFirst(k, v, callback) {
console.log(k, v);
// Do some async operation
if (error) {
callback(error);
} else {
callback(null, result);
}
}
function taskSecond(k, v, callback) {
console.log(k, v);
// Do some async operation
if (error) {
callback(error);
} else {
callback(null, result);
}
}
function run() {
var g1 = "Something";
var g2 = "Something";
var g3 = "Something";
var g4 = "Something";
async.series(
[
// Here we need to call next so that async can execute the next function.
// if an error (first parameter is not null) is passed to next, it will directly go to the final callback
function (next) {
taskFirst(g1, g2, next);
},
// runs this only if taskFirst finished without an error
function (next) {
taskSecond(g3, g4, next);
}
],
function(error, result){
}
);
}
It can be as follows
function taskFirst(k, v) {
console.log(k, v);
}
function taskSecond(k, v) {
console.log(k, v);
}
async.series([
function(callback) {
callback(null, taskFirst(g1, g2));
},
function(callback) {
callback(null, taskFirst(g3, g4));
}
],function(error, result){
});
This answer to async's github issue has worked for me perfectly. https://github.com/caolan/async/issues/241#issuecomment-14013467
for you it would be something like:
var taskFirst = function (k, v) {
return function(callback){
console.log(k, v);
callback();
}
};
Better way.
const a1 = (a, callback) => {
console.log(a, 'a1')
callback()
}
const a2 = (a, callback) => {
console.log(a, 'a2')
callback()
}
const run = () => {
async.series([
a1.bind(null, 'asd'),
a2.bind(null, 'asd2')
], () => {
console.log('finish')
})
}
run()