i am trying to store the output from a callback (find) function in node js to a variable which ill be adding to an array .since I am using a loop for all this i am facing problem in retrieving the variable as it comes out to be undefined everytime .Please help to rectify the code below.
var relations = []
relconf.find({"pId":req.params.pId},'termType form',function(err, terms) {
if (err) {
console.log(err)
} else {
console.log(terms+"###########")
terms.forEach(function(value){
for(var i = 0;i<value.form.length;i++){
var ExpectedRels =value.form[i].expectedRelation
value.form[i].property.forEach(function(value){
//console.log(value.dataField+"@"+value.type)
})
var termId=value.form[i].termType
// retrieveUser(termId,req.params.pId,handleResult);
**var termname= retrieveUser(termId,req.params.pId,function(err,name){
name
});**
console.log(termname+"__________________________________________-")
relations.push({"name":termname,"Expected Relations":ExpectedRels})
//console.log(relations)
}
})
res.send (relations)
}
});
in this case console .log shows the following result for termname: undefined__________________________________________- undefined__________________________________________- by callback function is as follows :
function retrieveUser(term, Pid,callback) {
relconf.findOne({"pId": Pid},'termType',function(err, users) {
if (err) {
callback(err, null);
} else {
//console.log(users)
for(var i = 0;i<users.termType.length;i++){
if(users.termType[i].id==term){
callback(null, users.termType[i].name);
}
}
}
});
};
My whole motive is to have the value of 'name' from callback stored in the variable termname so that it can be added to the array.
via Nitika Jain
No comments:
Post a Comment