Hier ist mein Code-Snippet. Ich versuche, Details meiner Freunde zu erhalten. Freunde-Liste ist innerhalb der Benutzersammlung selbst und dort bin ich Benutzer ID einfügen. Also zuerst ich hole userId
, dann holen jedes ihrer details.aber mein Problem ist, dass ich nicht die Werte friendsDetails
außerhalb der fetchDetailsfunction
bekomme. Ich habe es viele Mal versucht. Ich bin neu zu Knoten und Segel js. Ich denke sein Problem der asynchronen Ausführung. Wie kann ich dieses Problem lösen?Code außerhalb in for Schleife Ausführung vor der Ausführung in node.js
getFriendsDetails:function(req,res){
var userId = req.param('id');
var friendsDetails=[];
User.findOne({
id: userId
}).exec(function(err,user){
var friendsIds=user.friends;
friendsIds.forEach(function(id){
User.findOne({
id: id
}).exec(function fetchDetails(err,Userdetails){
var obj={
id:Userdetails.id,
name:Userdetails.name,
pro_pic:Userdetails.profile_pic
}
friendsDetails.push(obj);
console.log(friendsDetails);//Here consoling pushed data correctly.
});
console.log(friendsDetails);//here i am getting null array
});
});
Dies ist ein normales Verhalten. Lesen Sie hier ein wenig über Grundlagen: https://www.codementor.io/nodejs/tutorial/manage-async-nodejs-callback-example-code – hlozancic