Parse.com关系查询

时间:2014-06-05 01:09:50

标签: javascript parse-platform

我对Parse很新,我正在努力解决某个问题。我有一个用户类

班级

和一个评论(我想我的配置非常标准)我没有足够的声誉来发布图片 - 听起来多么悲伤 - : - )

我有一个查询,基本上我选择了所有的帖子(以及相关的用户,理想情况下我希望得到与帖子相关的所有评论)为此,我这样做:

        var query = new Parse.Query("Post");
        query.include("user");
        query.find({
        success: function(objects) {


        for (var i = 0; i < objects.length; i++) 
        { 

            var object = objects[i];
            console.log(object.id + object.get("user").get("imageUrl") + object.get('text'));
            var commentquery = new Parse.Query("Comment");
            commentquery.equalTo("post", object);
            commentquery.find({
            success: function(comments) {
                console.log(object.id + object.get("user").get("imageUrl") + object.get('text'));

基本上我尝试获取帖子然后获取每个帖子的评论。不幸的是,我的代码中的第二个控制台日志总是打印相同的对象(比如忽略for循环)。

我真的不知道我做错了什么(可能是回调或可能是查询设置),但我无法克服这一点。此外,如果任何专家知道更好的方法,而不需要多余的数据或知道一个关于Parse的好教程/书(除了解析文档),我将非常感激。

提前致谢!

1 个答案:

答案 0 :(得分:0)

使用匿名函数关闭对象的工作。

    for (var i = 0; i < objects.length; i++) 
    { 

        var object = objects[i];
        (function(object){
        //do stuff with object;
        })(object);
    }

您正在使用最新的对象,因为分配后的工作尚未完成,因此对象[i]过早地进入下一个对象。额外的功能应该有所帮助。

或者你可以

    for (var i = 0; i < objects.length; i++) 
    { 

        (function(object){
        //do stuff with object;
        })(objects[i]);
    }

Closures and the infamous loop problem