如何将异步系列应用于此代码...我在查询和正确使用结果时遇到问题...我需要获取 user.friendStatus ,它是用户在 Friend 集合中拥有的所有朋友的列表和然后,获取朋友的每个 id 并从 User 集合中找到用户信息...
更新:将 async.series 更改为 async.waterfall 以便我可以将一个结果传递给下一个函数。但是,我不确定您如何调用并将结果从一个传递到另一个...
这是我的代码:
exports.contactList = function(req, res) {
async.waterfall([
function(callback) {
var friends = [];
Friend.findOne({userId: req.signedCookies.userid}, function(err, users) {
if(err) {throw err};
for(var i = 0; i < users.friendStatus; i++) {
if(users.friendStatus[i].status === 3) { friends.push(users.friendStatus[i])};
}
});
callback(null, friends);
},
function(callback) {
var friendsinfo = [];
for(var i = 0; i < friends.length; i++) {
User.findbyID({_id: friends[i].fuID}, function(err, users) {
if (err) { throw err};
friendsInfo.push(users[i], friends[i].favorites);
});
}
callback(null, friendsinfo);
}
],
function(err, results) {
res.render('contactList', {title: 'Weblio', Friends: friendsinfo});
});
};