vendredi 27 mars 2015

Wait to resolve multiple callbacks

I'm trying to fetch IDs from one call with mongoose. Afterwards, each of these IDs is used to make another call that returns multiple objects. I am trying to fetch all of these objects.


My current attempt looks something like this:



var members;
var memberTimes = [];

// Use the Group model to find a specific group
Group.find({
members: {
$elemMatch: {
$eq: req.user._id
}
},
_id: req.params.group_id
}, function(err, group) {
if (err) {
res.send(err);
} else if (!group) {
//res.send(new Error("User not in group or it does not exist"));
}

members = group[0].members;

for (var member of members) {
// Use the Time model to find a specific time
Time.find({
user_id: member
}, function(err, times) {
if (err) {
res.send(err);
}

for (var time of times) {
memberTimes.push(time);
}
});
}
//on completion of all above code, execute res.json(memberTimes);
});


This, however, does not work because I am not waiting for all the callbacks from the Time#find. I have look at using promises but I am unsure as to how exactly make it work.


Does anyone know how this could be made to work?


Thank you, Daniel


Aucun commentaire:

Enregistrer un commentaire