【发布时间】:2018-05-26 17:33:50
【问题描述】:
有没有办法在其他函数中调用包含猫鼬查询的函数,以便其他函数正常工作?
我的第一个包含猫鼬查询的函数:
getUserTags = (id) => {
User.findById(id)
.exec( (error, user) => {
if (error) {
return next(error);
} else {
return user;
}
})
}
还有我需要调用第一个函数的函数:
userTagToBookTagValues = (id) => {
const user = getUserTags(id);
//I NEED THIS PART TO WORK AFTER getting data from getUserTags
console.log(user);
user.tags.forEach(tag => {
console.log(tag)
});
}
有没有办法让它正常工作并且第二个函数中的用户不会被定义?
【问题讨论】:
-
How do I return the response from an asynchronous call? Mongoose 已经支持其中涵盖的 2 个选项——回调和承诺(虽然不是在同一个调用中,所以每次你都会让你选择一个)。您需要将其扩展到您定义和调用自己的函数的方式——例如
getUserTags(id).then(user => { ... })。 -
getUserTags = (id) => User.findById(id).exec().catch(next);
标签: javascript node.js mongodb asynchronous