我参照 Cnode 源码写的项目,但不知道哪里出问题了,根据 userid 查询的用户信息不能保存到对象里。
const ep = new eventproxy();
ep.fail(next);
EveryDay.getRankByTodayDate(TodayDate, ep.done('ranks'));
ep.all('ranks', function(ranks){
ranks.forEach(function(rank){
User.getUserById(rank.userId, ep.done(function(user){
rank.nickName = user.nickName; //这里不生效
console.log(rank,rank.nickName); rank.nickName 有值,但是打印出的rank没有nickName 属性
ep.emit('user');
}))
});
rank.nickName = user.nickName;
为什么直接这样赋值不生效那?这里应该怎么把查询到的用户昵称保存到数据对象里?
我看本站的源码就是直接赋值的,我遗漏了什么吗?麻烦大家,指点一下。
我在网上找到了这种解决方法,但是还是不懂本站的源码怎么处理的:
EveryDay.find({TodayDate}).lean()
.exec((err, ranks) => {
...
}
)