考虑下面的代码:
userSessionDetail.save((err, data) => {
if (data) {
console.log('User Session has been successfully created!');
returnUserData = {
username: user.username,
sessionid: LoginUserModel.findOne({
email: req.body._usercredentials.email
})
.sort({
loginDateTime: 'desc'
})
.then((res) => {
// console.log(res._id) Successfully get value from promise
return res._id
})
.catch((err) => {
console.log(err);
})
}
console.log(returnUserData.sessionid); //empty
} else {
console.log('While creating User Session, something went wrong.');
}
})
我正在尝试的是从我的承诺中获取 Value 并将我的 property Value sessionid
. 上面的代码并没有从我的承诺中获得 Value . 它显示了我的结果如下:
用户会话已成功创建! Promise {emitter:EventEmitter {domain:null,events:{reject:[Function]}, eventscount:1,_maxListeners:undefined},emit:{},ends:true}
你能澄清一下如何将生成的'res._id'传递给属性sessionid的值,而不是传递给它本身吗?
1 回答
mongoose的findone方法返回一个promise,当mongodb(最终)返回数据时执行
Promise.then()
回调: