this question may seem easy but I have 0 experience in javascript and got confused with the call-back functions.
The original code was doing some "async.each" with "async.parallel" stuff.
function fillMap(listElements, elementMap, params, callBack) {
async.each(listElements, function findElement(listElement, forEachCallBack) {
async.parallel(
{
fun1: function getUniqueElement(parallelCallBack) {
params.getResponse1(parallelCallBack);
},
fun2: function getElement(parallelCallBack) {
params.getResponse2(parallelCallBack);
}
},
function fillElement(err, res) {
if (err) {
return forEachCallBack(err);
}
elementMap[listElement] = res.body;
forEachCallBack();
});
}, callBack);
}
Now I don't need, say, the first function in async.parallel, I just need "getElement" but not "getUniqueElement". How should I remove it from the async.parallel body? And I don't I need the "async.parallel" But I don't know how can I call the "getElement" with "fillElement" still receives the response body..
Any suggestion?
Thanks!
Removing the getUniqueElement from async.parallel
function fillMap(listElements, elementMap, params, callBack) {
async.each(listElements, function findElement(listElement, forEachCallBack) {
async.parallel(
{
fun2: function getElement(parallelCallBack) {
params.getResponse2(parallelCallBack);
}
},
function fillElement(err, res) {
if (err) {
return forEachCallBack(err);
}
elementMap[listElement] = res.body;
forEachCallBack();
});
}, cb);
}
Removing the whole async.parallel block
function fillMap(listElements, elementMap, params, callBack) {
async.each(listElements, function findElement(listElement, forEachCallBack) {
var fillElement = function (err, res) {
if (err) {
return forEachCallBack(err);
}
elementMap[listElement] = res.body;
forEachCallBack();
}
var getElement = function (callback) {
params.getResponse2(callback);
};
getElement(fillElement);
}, callBack);
}
Try to go through the api https://github.com/caolan/async If any doubt feel free to ask.