User.find().then(function (user) {
console.log(user)
})
Category.find().then(function (category) {
console.log(err);
})
Content.find().then(function (content) {
console.log(content);
})
如何将查询句子合并为一个并获得所有结果? ps:我使用mongoose来操作mongoDb。
答案 0 :(得分:3)
您可以将所有查询包装在Promise.all()中以获得所需的结果。传递给Promise.all()的查询将同时执行。看看下面的代码。
Promise.all([
User.find(),
Category.find(),
Content.find()
])
.then(results=>{
//results return an array
const [users,categories,content] = results;
console.log("users",users);
console.log("categories",categories);
console.log("contents",content);
})
.catch(err=>{
console.error("Something went wrong",err);
})
如果您使用的是bluebird库,那么您可以使用Promise.props(),它基本上允许您传递对象而不是数组。
Promise.props({
users:User.find(),
categories : Category.find(),
content : Content.find()
}).then(result=>{
console.log("users",result.users);
console.log("categories",result.categories);
console.log("contents",result.content);
}).catch(err=>{
console.error("Something went wrong",err);
})