所以我使用異步瀑布作爲我的過程將函數的結果傳遞給下一個。我目前在調用查詢導致的用戶推送時遇到問題。異步瀑布查詢不推?
這裏是我的代碼:
exports.contactList = function(req, res) {
async.waterfall([
function(callback) {
Friend.findOne({userId: req.signedCookies.userid}, function(err, users) {
var friends = [];
if(err) {throw err};
for(var i = 0; i < users.friendStatus.length; i++) {
if(users.friendStatus[i].status === 3) { friends.push(users.friendStatus[i])};
}
//console.log(friends);
callback(null, friends);
});
},
function(friends, callback) {
var friendsinfo = [];
for(var i = 0; i < friends.length; i ++) {
async.each(friends, function(friend, next) {
//friendsinfo.push(friend.favorites)
User.findOne({_id: friend.fuId}, function(err, user) {
if (err) { console.log(err); };
var object = {'fav': friend.favorites, 'user': user};
friendsinfo.push(object);
next(err);
});
}, function(err) {
console.log('friendsINFO');
console.log(friendsinfo);
callback(err, friendsinfo);
});
}
}
],
function(err, results) {
console.log('RESULTS');
console.log(results);
res.render('contactList', {title: 'Weblio', Friends: results});
});
};
CONSOLE.LOG(用戶)實際打印出來的用戶。數組friendsInfo顯示爲未定義。
問題是,您遺漏了需要與用戶信息一起添加的收藏夾。 – Lion789
只需添加friendsinfo.push(friend.favorites);以上User.findOne – sbarow
是的,但它沒有正確配對,我將結果添加到我的代碼 – Lion789