我使用Parse Cloud Code来托管Web应用程序,但是我在尝试使关系查询工作时遇到了问题。我已经尝试过Coderwall https://coderwall.com/p/n22mqq/including-relational-data-in-a-query-parse-com的示例,但在尝试渲染结果之前,我不确定如何收集查询结果。
function queryProducts(limit) {
var post = Parse.Object.extend("Post");
var query = new Parse.Query(post);
query.limit(limit);
var data = new Array();
query.find().then(function (posts) {
var cb = _.after(posts.length, function () {
console.log("after"+ data);
return data;
});
_.each(posts, function (post) {
var images = post.relation("images");
images.query().find().then(function (images) {
data.push(post);
cb();
});
});
});
}
app.get('/', function (req, res) {
results = queryProducts(10);
res.render('index', { products: results });
});
答案 0 :(得分:1)
要回答我自己的问题,答案其实很简单,如果你在Parse docs https://parse.com/docs/js_guide#promises-parallel中读到关于并行承诺的内容,那么这个例子错过了函数传递给final的那个()可以接受一系列结果,例如
Parse.Promise
.when([query0.find(), query1.find()])
.then(function (query0Results, query1Results) {
res.render('index',
{
query0Results: query0Results,
query1Results: query1Results,
}
);
});